Big Cartel Review.
The United Pixelworkers t-shirt emporium is now live, and, with that, I’d like to take a minute to vent discuss rationally our shopping platform of choice, Big Cartel, a hosted, pay-by-the-month shopping cart system built by Indie Labs and which, according to their slogan, is “easy to use, customizable, and awesome.” We’ll see.
The Good.
It’s no accident tasteful designers like Dan Cederholm and Matthew Smith chose Big Cartel when they decided they were ready to unleash their t-shirts and posters on the world. The good stuff is very good. A quick line-item recap:
Beautiful control panel.
The control panel is a work of art. Nearly everything is logical, fast, and beautiful. Many areas were enhanced with Javascript to avoid page refreshes and make tasks like re-arranging products simple. The control panel is hands-down the best part of the Big Cartel experience.
Reasonable price.
If you’re anything like us, you’re not looking to quit your day job to sell t-shirts, which is why $9.99 / month is a big win. Sure, we could develop our own system or use something free off the shelf, but most of our time is spent working on other people’s stuff not our own, remember?
We also could have paid a flat rate for something self-hosted that is a bit snazzier and more fully-featured. To be honest, that’s tempting, and it may be something we explore in the future. For now, though, the monthly fee is less upfront investment. Who knows where we’ll be in a year anyway.
Helpful support staff.
The questions I had about the templating system were answered quickly and professionally. Across the six questions I emailed to the support staff, the average response time was 27 minutes, the shortest was eight and the longest 49. That’s excellent.
The templating language.
The HTML-like templating language handled the core tasks well. I had no problem getting the majority of the site up and running. As long as you stick to something that looks and feels similar to Big Cartel’s bundled themes, you should be in good shape. As soon as you go off the beaten path, however, you’re going to run into trouble. The templating language does allow for several dynamic features, just don’t plan on building your own CMS from scratch. That said, a little PHP support would have gone a long way.
Mostly good documentation.
The documentation was almost great. The first 90 percent was everything I needed it to be. Once I started digging into the filters and parameters, however, I found that not every element was completely and thoroughly documented. There’s room for improvement, but overall, if all the documentation I had to work with was this complete and well-considered, I would be a happy developer.
Easy setup.
The process of getting up and running with the default skin was as painless as anything possibly could be. That’s the biggest upside to a hosted service, of course. Pick a plan, answer a few questions, enter your credit information, then start adding products. Jay could probably have even done it himself.
Custom URL.
Speaking of using a hosted service, a custom URL is a must. (Preferably something easy and memorable, like, oh, unitedpixelworkers.com.) Thankfully, Big Cartel knows this and provides easy-to-follow instructions for re-directing your existing domain name. For bonus points, I would have liked to have seen similar instructions for re-directing the bare domain (without the www). Most people won’t have any trouble, but for those who do it would have been nice.
The Bad.
I hate to harsh on Big Cartel, but there are a few enhancements that would go a long way toward making the system as powerful as we would have liked it to be.
No custom fields.
Ouch. The default product fields cover the essentials: title, description, price, images, etc. What if you have multiple descriptions depending on where the product is being viewed (home page v. product page) like we did? Too bad. We had to scale the design back in places, and in others, we’re entering things by hand in the templates and using assigned variables and conditionals to determine what should appear.
If you’re familiar with WordPress development, you know the pain caused by the minimal custom field architecture it has compared to a real CMS. Working with Big Cartel is like that, except worse. I’m sure they have legitimate technical reasons for not allowing custom fields, but I hope that’s something they plan to add in the future.
No server language.
While we’re on the subject of programming pain points, I have to point out that your options for dynamic content are their custom templating language or … well, that’s it.
If the templating language was more robust, we could have probably lived without PHP (for example). Unfortunately, this is where the inflexibility of using a hosted service really bites you. The built-in contact form was alright, but we would have liked to remove the captcha and the subject field. That’s just not possible with the current system. The fallback plan was to write our own form, but that would have meant processing it on our servers. In the end, since the site is aimed at people who live and breathe the Internet, we decided an email link would suffice. There were several other instances, however, in which using a real language and not a templating language would have made our lives significantly easier.
All that said, I suspect the vast majority of Big Cartel’s customers have no need for scripting support. It probably wouldn’t make sense (financially) to spend the time building it in. Those of us who do need it, however, would certainly appreciate it.
Minor gripes.
Custom fields and a real scripting language were the big hurdles, but there were a few niggles that made my life more difficult than I prefer.
Big Cartel uses Prototype to process their forms and add basic functionality if you choose to use their templates. That’s a problem for two reasons. First, I’m a jQuery man myself, and that means I either need to trip my way through Prototype or include another library. I chose to include jQuery. ((I know, I know. I’m killing the page load time.)) Second, including jQuery introduced an obscure Prototype + jQuery + Opera bug that took a long time to track down. ((For those interested, it had to do with the scrolling navigation and calculating height. The first fix I found ended up breaking things on iPhone OS devices. Here’s the winning jQuery patch.))
The only way to edit the templates is in the browser. That means you can’t download the templates, edit in your text editor of choice, and upload to an FTP location somewhere on Big Cartel’s servers. It’s inconvenient for sure. They try to make your life easier with a full-screen editor and by automatically closing tags (which is more annoying than helpful), but it’s a poor substitute. Perhaps as projects like Bespin advance the in-browser editing experience will be less painful. Relatedly, all custom assets must be loaded onto a separate server that you control. Every CSS, Javascript, and image file we use is being served from somewhere else. It’s not a problem for us, but it certainly seems like something Big Cartel can and should offer, perhaps for a fee. ((Also of technical note, in order to get some details just the way we wanted them, we had to grab the Big Cartel store Javascript file as well as the FancyZoom script, tweak them, and call them on our server rather than from their default location. We think the bandwidth will be offset by the improved experience.))
Last, and definitely least, once a product has been created, there’s no way to change the URL. Actually, there’s no way to affect the URL at all, so choose your product names carefully.
Conclusion.
Look, we know nobody does TL;DR as well as we do. (Wait, I meant to say, we know all of our posts are way too long.) So here’s the skinny:
Big Cartel is, like they claim, easy to use, customizable ((Look, we have to dock their score slightly on customizable. Sure, if you just want to tweak the CSS or make minor, cosmetic changes to the default theme, it’s customizable. If wholescale, skeletal changes are your thing, you might want to at least look around at other systems. That said, check out our store. We think it shows how far Big Cartel can stretch.)), and awesome. We’re very happy. If you want to build a custom store to sell your stuff in one week, you can’t go wrong.
Auré
Hi, thanks for sharing your experience.
The lack of custom fields for this kind of content (with important care for product details) is really strange you’re right.
I wish you the best for this new store :)
Matt Wigham
Hi Nate,
I’m Matt, one of the founders of Indie Labs / Big Cartel. Great article, I’m really happy to see the good things you listed about your experience, but let me address a few of the issues you present:
* Custom fields – as you allude to, Big Cartel was not designed to be a general CMS, it was designed to be the easiest way for artists to setup a simple store to sell their stuff online. So anything beyond the basics that 99% of stores want (name, price, etc.) we’ve just tried to make it possible for that 1% to accomplish what they want (though it may sometimes require hacks), but leaving the additional UI overhead out of the app for everyone else.
* Server language / scripting – for obvious security reasons, hosted services don’t want you running raw server code on their site. Big Cartel is built using Ruby, so the scripts wouldn’t be PHP anyway, but we’ve tried to make our theme engine flexible enough to account for as much tweaking as possible. Typically if people want to really get down into the server code themselves, they build their own cart from scratch on their own server. Also, regarding your contact form issue, some stores will replace their contact form completely with a 3rd-party service such as Wufoo. Were there any other specific issues you ran into with the theme API?
* Prototype – our default themes are using Prototype, but you’re not required to leave that in your store at all. We have a lot of stores running purely on jQuery, MooTools, etc. Also, jQuery has their noConflict mode which should solve any basic battles over the $ method with Prototype: http://api.jquery.com/jQuery.noConflict/
* Theme editing – you can definitely develop your themes offline, that’s what we do. You can download the theme code on the Design > Themes section, open it in your favorite editor, and then when you’re done, copy and paste it into the necessary pages on the Design > Pages section of your admin area. This also allows you to keep your custom code under some sort of version control like SVN or Git.
* Product URLs – the reason we keep your product permalink the same even after its name changes is to prevent broken links from external sites. Adding the ability to change a product’s permalink is something we’re considering, but for right now just deleting the old product and adding it again using the new name seems to work ok for most people concerned about maintaining the right URL.
Thanks again for your great post, and if you have anything else we can answer or clarify for you, please don’t hesitate to contact us at: http://bigcartel.com/contact
Matt
Nate
Matt,
Thanks for the thorough response. I can’t disagree with anything you’ve written.
As far as replacing the contact form or ditching Prototype completely, you’re absolutely right. We wanted to re-use as much of Big Cartel’s native functionality as we could. Why reinvent the wheel, right? Just a bit more flexibility with the contact form or using jQuery instead would have given us the best of both worlds. That said, we completely understand why things are the way they are.
We also agree that developing offline to use version control and a good text editor is possible as long as we copy and paste when we’re done. In fact, that’s what we did. Still, it’s less convenient than FTP or SVN.
Despite the few issues we ran into, we love the service and admire the decisions you’ve made in targeting a specific audience. We plan to continue using (and enjoying) Big Cartel for the foreseeable future.
Ben Dunlap
Great review. I love the even-handed tone and level of detail. If this is TL;DR — more, please.
“We also could have paid a flat rate for something self-hosted that is a bit snazzier and more fully-featured”. Did you have a specific product in mind that you passed up for now?
I’ve used Shopify for three clients now and I’ve been very happy with it overall. Certainly not without it’s difficulties as well, but it does have template upload and custom fields (of a sort; this feature’s still pretty raw).
Interestingly, it appears that both Shopify and Big Cartel use Liquid for their templating, and so far I’ve found very little that’s actually impossible to do with Liquid, although some of the workarounds can get a bit silly. Luckily Shopify’s public forum is active and they have some really helpful staff who spend a lot of time on it. And presumably they gets every tasty new Liquid feature instantly because they invented the language.
That said, Shopify costs quite a bit more: Their entry-level plan is more expensive than Big Cartel’s “Diamond” plan, and Shopify takes a transaction fee for all but the highest-end monthly plans (at least that’s how their off-the-shelf pricing is structured). I’ll be sure to keep Big Cartel in mind now for customers with tighter budgets.
Anyway if you guys go down the self-hosted path in the future I’d love to read a retrospective like this once you’ve got a site knocked out.
Nate
Thanks, Ben. We looked at a few ExpressionEngine cart add-ons (like Cartthrob), but we wanted EE 2 compatibility, which hasn’t happened yet.
I’ve heard good things about Shopify as well, and thanks for the Liquid heads-up. I’ll be sure to bookmark that.
Blaine
Great review and excellent work on the United Pixelworkers site.
I too would enjoy seeing custom fields become a reality with Big Cartel. I’d be interested to hear how you overcame this limitation with the use of assigned variables, conditionals, etc.
Nate
Blaine, the short and unsatisfactory answer is that I have a nasty case statement that gets updated in the template per product. Here’s a truncated version:
{% case product.name %}
{% when ‘Local Series #1: Pittsburgh’ %}
{% assign intro = ‘Pittsburgh used to crank out steel like nobody’s business. Represent the Local 412 and crank out some pixels.’ %}
{% assign description = ‘Yellow and light gray ink on asphalt American Apparel tee.’ %}
{% endcase %}
Hope that helps.
CC De
Hey Nate,
Great article. I noticed you were able to customize the zoom in and close buttons for your big cartel site. I figured out how to edit the zoom button but I’m having trouble editing the close box “X” image.
Weirdly enough I found the exact location the image “/themes/sexy/images/zoom/closebox.png” but can’t find it anywhere in the CSS to change it.
Could you let me know what you did to fix this? It would be much appreciated.
Blaine
Thanks for the response Nate.
Looks like we ended up with a similar solution. I used a case statement to serve up unique content for artist pages. It’s manageable with only a handful of artists, but it’s definitely a pain!
Nate
Hey, CC, sorry for the late reply. You won’t find it in the CSS because it’s being added directly in the fancyzoom.js file. I believe I chose to self-host that file, then modified it to do what we needed. Once you get into customizing these off-the-shelf solutions, it turns into something of a mess. Hope that points you in the right direction.
So You Want To Make T-Shirts?
[…] I won’t go into a ton of detail about what it’s like working with Big Cartel, because we already did, and Big Cartel interviewed us about it. If you don’t want to read Nate’s War & […]
Stephan
Hey Guys, great article and amazing design on the store; very impressed!
One of my biggest gripes with BC is that it only uses papal for payments. So ie – if a customer didnt have or want to use paypal i’d potentially lose that sale.
I see you guys actually did a workaround with that on your site? The checkout redirected to a shopify cart where the product was listed and a details form.
Was this something that can be easily employed or a complete custom “hack”? I would really love to have this functionality for my site/clients.
I think i understand the gist of how it would work:
– have both a BC and Shopify cart with products listed/mirrored in both
– the main site would be on BC
the buy now/checkout button would link to the similar product on shopify cart
What i dont understand is (probably the hack/custom part)
– does the BC hack forces the product in to the checkout of shopify? ie – the customer doesnt click checkout on BC and then has to re-add the product into shopify’s cart once redirected?
– inventory synchronization issues?
Sorry for such an invasive inquiry but i am really torn between the functionality that Shopify has (ie – payments and inventory management) and the aesthics and simplicity of the BC UI/UX. i have my store set up on both and still havent decided which one to go live with lol.
Any feedback on implementing that workaround would be a life saver!!! and greatly appreciated!!!
best
Stephan
Nate
Hey, Stephan. We use Shopify now. No hacks involved.
You can read about it here: http://blog.unitedpixelworkers.com/2012/03/13/why-shopify