We’ve made no secret of the fact that we here at New Media Campaigns love Craft CMS. For verification of our love, you can check out our review of Craft and tips to get started. While many CMS’ make you fit your process into their - often idiosyncratic - structure, building things on Craft feels like the development path of least resistance. Craft brings a level of clarity to constructing websites that is difficult to find in a CMS.
Clarity of the Craft CMS kind is something that has been sorely lacking in another web development area for a long time - e-commerce. The web development road to a successful e-commerce solution is paved with huge, monolithic solutions that you need to take a class to be proficient in, and one-off custom solutions that are rough to maintain.
So when Craft Commerce was added as a marquee plugin for Craft in late 2015, we were very intrigued. Lately, we’ve had the chance to try it out on a few projects, and we love it. Below we detail our favorite things about Craft Commerce, ways to most effectively use the setup, and tips for how you can jumpstart your next e-commerce project with Craft Commerce.
All the Good Craft CMS Parts, in Commerce Form
Just like the Craft Commerce docs recommend, we also recommend playing around with plain old Craft CMS before you get your feet wet with Craft Commerce. That’s an important step, not because Craft CMS has a lot of unique concepts that you’ll need to wrap your head around to “get” Craft (Craft CMS is thankfully very light on Craft-only special knowledge), but because Craft Commerce takes all the great Craft CMS concepts and builds on them.
Part of the reason for this is Craft Commerce is made by Pixel & Tonic, the same company that makes Craft. Craft Commerce is also a marquee plugin - at the top of the craftcms.com website, there’s a link for “Commerce” - advertising the fact that Commerce is a first party, supported solution.
But even though Craft Commerce is a first party add-on, Pixel & Tonic has impressively kept it entirely inside of their own plugin structure. No core additions are needed for Craft Commerce. In the development world, that’s called “eating your own dogfood” (the development wordl admittedly needs some better metaphors), and it isn’t as easy as it sounds.
Commerce also applies a similar licensing structure as Craft - you can download the full plugin for free at craftcommerce.com, and when you want to start selling things you just grab a license and you’re all set.
Logical Licensing Worth the Price
There’s only one license for Craft Commerce - it’s $700 and you buy it one time. It says $999 on the Craft Commerce website, but only because it technically comes with a $300 Craft Pro license - if you don’t need a Craft Pro license or already have one, you’re good to go with the $700 option. However, we always need the Craft Pro license features, so realistically you’ll need around $1k for both licenses.
If you come from a world of the free and/or $25 plugin, you might have some sticker shock needing to shell out $1,000 for a license, but if you are building a store or other e-commerce product for a client, a $1k for a solution like Craft Commerce is an absolute steal.
On the value side, if you’d like to build something comparable to the feature set of Craft Commerce, I’ll see you in 6 months when you’ve got a rocky beta going. $1k and a few hours of configuration time gets you almost all of the way to a complete and polished e-commerce setup, and the time and thought that the developers put behind Craft Commerce is well worth the price of admission.
That being said, if you just want to get something up to sell t-shirts for you band or something else where you are not truly focused on ecommerce, I’d suggest a hosted, lower overhead solution (Shopify comes to mind).
Quick, Feature-Rich Starting Point
When you download Craft Commerce you get two folders - commerce and templates. To install, pop the commerce folder into craft/plugins and the templates/shop folder inside of craft/templates. Craft mentions these templates are optional, but these contain some nce starter logic for a lot of Craft Commerce features.
After that, activate the plugin via the Craft CMS backend like you normally do. When you first install Craft Commerce you’ll notice a new Commerce menu section in the left hand sidebar. This is where you’ll control Craft Commerce settings as well as view cart order data.
Guess what? You’re ready to build! You already have a functional cart with a dummy payment gateway that you can immediately start using to test out and build from there. Craft Commerce’s default setup is a great mix between opt-in features and extra things you can easily delete in the templates.
More than any other feature, a commerce solution has to get extensibility right. E-commerce solutions are the true snowflakes of the web development world - no two are the same - and an e-commerce solution that makes too many assumptions will eventually be an issue for any project. Craft Commerce’s first challenge is maintaining simplicity while including enough extensibility to be a viable solution for the majority of e-commerce applications out there.
On extensibility, Craft Commerce is a rockstar, giving you several layers of customization on seemingly every feature.
The first level is what we’ll call the control panel configuration level - basically anything that Craft exposes via the control panel that is simple to set up and configure. In this level, Craft Commerce makes it simple to set up:
- Payment gateways (there are almost 40 gateway options when you set up a payment method)
- Product Types
- Product Fields
- Product Variants
- Currencies, including conversion rates
- Tax Categories
- Tax Zones
- Tax Rates
- Shipping Categories
- Shipping Zones
- Shipping Methods
- Order Statuses
- Order Fields
Out of the box this is extremely impressive - you can build something very custom just in the control panel interface.
One of our favorite easily customizable features is Order Status - if you have a unique process that an order goes through - for instance, if you need to verify some order data before an order can actually be shipped - you can set this up as a series of order statuses. The status history of that order (along with optional messages that can be attached to each order change) will be tracked, and emails can be associated and sent with a specific order status change. That’s a lot of custom functionality that can be set up very easily.
Then, you get down into the code customization level, which lets you build off of Craft Commerce’s structure in your own plugins and templates. For this level, one of my favorite features is the concept of a purchasable - an element type that inherits a base Purchasable class.
Anything you can add to a cart is a purchasable - so right away you know that besides the product types that you can build in the configuration area, you can also build essentially anything you’d like that you’d like to add to a cart.
Custom Fields and Variants
Almost every CMS now has some sort of custom field feature (even Wordpress), but we love the simplicity and extensibility of the Craft CMS custom fields system. In Craft Commerce, you can bring all of your custom field skills to not only products, but orders as well, meaning you can define exactly the set of data you’d like to be able to add to an order as a whole.
But one of the most useful features for us has been variants - essentially a matrix field that is associated with a product and can define different variations on a product. This includes a lot of powerful functionality, including inventory numbers, allowed quantity, and more.
The best part of this feature is that variants can have their own custom fields as well, giving you a lot of flexibility in how you set up and define your product catalog.
Extensive Payment Gateways
I will let you in on a little secret - I really don’t like dealing with payment gateways. There are hundreds of them and each of them seems to have chosen a unique reason why they are difficult to work with.
Craft Commerce has done an amazing job of making payment gateways bearable again by including a huge amount of them out of the box. Just fill out the information for that specific gateway, and you are set up with that gateway. If you need to define a custom gateway, there’s a full gateway API.
I still don’t like payment gateways, but this makes dealing with them much easier.
Of course, Craft Commerce isn’t a perfect solution to everything - no product can be. And, Craft Commerce also has room for improvement. I think there could be more comprehensive documentation, more hooks, and more sophisticated SKU generation.
But one of the most impressive things about Craft Commerce is how much we haven’t had to even touch yet. We haven’t had to wade into the world of tax categories yet, but Craft Commerce is set up in a way that if you aren’t using a feature, you are not constantly tripping over it. Also, when we have a client that has complex tax needs, we know Craft Commerce will be able to handle it.
And on top of the existing features we haven't yet played with, Craft and Pixel & Tonic are also growing and adding brand new features all the time. This is a solid product that is only getting bigger and better with time.
Craft Commerce is a perfect melding of out of the box functionality paired with the ability to customize it to your own needs. If you have a big e-commerce project coming up, you'd be doing yourself and your client a disservice if you didn't give Craft Commerce a good, long look.