What is the current landscape regarding e-commerce plugins for Craft?

34

22

I'm developing an online store. The store needs to be seamlessly integrated with all of the editorial content on both the front and back-end. Craft is obviously a perfect candidate for the editorial content, but at this moment the options for e-commerce plugins are limited.

What e-commerce options are currently available for Craft?

Mike Pierce

Posted 2014-06-19T08:24:53.840

Reputation: 414

Due to the nature of this question, it's been converted into a community wiki. "Questions should be manually converted to community wiki when they are marginal fits or 'list of X' questions that contain enough value to avoid deletion." – Lindsey D – 2014-08-14T18:31:30.237

Answers

38

E-commerce Master List

This is a compilation of all publicly available solutions. Other answers here describe each plugin in greater detail... This is simply a complete list of every known option.

Listed in alphabetical order (not by popularity or preference)

1st party plugin

3rd party plugins (built exclusively for Craft)

3rd party services with official Craft plugins

3rd party services with unofficial Craft plugins

DIY custom solutions (via an API)

* Craft Commerce was formerly known as "Market Commerce" (aka "Cellar Commerce"). The name was changed after the plugin (and its developer, Luke Holder) were acquired by Pixel & Tonic.

Lindsey D

Posted 2014-06-19T08:24:53.840

Reputation: 18 570

Thanks @lindsey-d, looking forward to seeing what others think when it comes to this question. I can't have been the first one to wish for the simplicity of Craft CP extended to managing a store. – Mike Pierce – 2014-06-19T11:12:52.987

2@MikePierce I doubt I'm the first one either, but you're not alone. – Matt Stein – 2014-06-19T17:28:15.737

@LindseyD FoxyCart has been around for a while (used it on another project ~3 years ago), so it probably belongs in "Adapted for Craft" since you could start using it right now if you wanted to. – Matt Stein – 2014-06-20T15:02:35.063

Hmm, good point @MattStein... I put it in the "Coming Soon" category because it looks like they're working on an official Craft adaptation (like Snipcart did). What you describe would fall more into the DIY category (though not via API). Thoughts? – Lindsey D – 2014-06-20T16:06:00.403

@LindseyD They just posted notes on integrating with Craft, as though they sensed they were being mentioned somewhere. FoxyCart's platform is similar Snipcart just more full-featured, with very flexible checkout pages instead of modals. I don't know what "Adapted for Craft" is supposed to mean, honestly, I just imagine that Snipcart and FoxyCart should appear in the same category.

– Matt Stein – 2014-06-20T18:50:25.517

@MattStein They are mind-readers! Perhaps they do belong in a different category. "Adapted for Craft" means that a plugin has been written which makes it easier to integrate that 3rd party service... which hasn't yet happened for FoxyCart (though may be in the works). I'm certainly open to re-organizing the list or re-naming categories, let me know what you think it should be called! – Lindsey D – 2014-06-20T19:05:31.633

1@LindseyD Oh I'm just here to complain, not offer productive suggestions. But if you insist, I'd consider Snipcart and FoxyCart "Drop-In Services" since they're super quick to implement and the entire cart+checkout flow is handled by a third party. As opposed to Stripe/PayPal where you'd have to make a cart, figure out shipping, etc. or Charge/Commerce/Sprout that'd run on the server with Craft. – Matt Stein – 2014-06-20T19:09:42.490

@MattStein I like it! I might wait a few more days to make that adjustment, just in case FoxyCart is truly about to release a plugin. I'm trying not to over-edit this post. :) – Lindsey D – 2014-06-20T19:12:39.210

@MattStein LindseyD ooops some how I didn't see the last three comments before I edited it. Should I unedit it? – cmcjane – 2014-06-20T21:06:32.243

@cmcjane I think so, yes. FoxyCart's definitely not an API-only thing, so your edit's in an entirely different direction altogether. – Matt Stein – 2014-06-20T21:08:07.703

@MattStein that's why the kids shouldn't play after dark. – cmcjane – 2014-06-20T21:09:20.933

@cmcjane Actually, I got to "review" that edit and approve it... Based on this conversation, I let it get moved into API. Sounds like FoxyCart exists outside of our classification system! – Lindsey D – 2014-06-20T21:10:44.257

In the Catholic Church there is this concept of "in limbo" – cmcjane – 2014-06-20T21:11:59.323

Regardless of who classifies it (cmcjane, Lindsey D, the Pope), FoxyCart is more like Snipcart than PayPal or Stripe. – Matt Stein – 2014-06-20T21:14:42.893

@cmcjane Lol, it's definitely in limbo. I'm debating whether to reject your un-edit (nothing personal). Based on what Matt suggested, FoxyCart should just go into a new category called "Drop-In Services". And based on FoxyCart's recent activity, it wouldn't surprise me if a true plugin were just days away. What are your thoughts? – Lindsey D – 2014-06-20T21:14:43.630

@MattStein Ah, except that a plugin has been written for Snipcart (by Snipcart)! Should that get moved to the "Built specifically for Craft" category? – Lindsey D – 2014-06-20T21:15:49.957

@LindseyD I would still put it in "Drop-In Services" and note "(plugin available)" next to it. The plugin is a post-receive hook for modifying order quantity. FoxyCart could technically write a plugin to put their logo in the Craft dashboard and get moved to "Built specifically for Craft" by your presence-of-first-party-plugin criteria. Unless it's a plugin for comprehensive Craft integration, I don't think that criteria's all that significant. – Matt Stein – 2014-06-20T21:18:46.093

@MattStein The thought behind "Built specifically for Craft" was definitely for 100% native Craft integration. "Adapted for Craft" was supposed to represent 3rd party services that had plugins built to integrate with Craft... By your logic, Shopify would also be a "Drop-In Service" (plugin available). – Lindsey D – 2014-06-20T21:22:25.460

@LindseyD Dammit you're right, and I guess I finally see how FoxyCart can be in DIY instead of adapted. I surrender for now, this entire q/a is a real challenge! – Matt Stein – 2014-06-20T21:28:03.503

@MattStein Ok, I've got a new plan... Cross your fingers! :) – Lindsey D – 2014-06-20T21:28:52.503

3Sorry had to hop on a ferry for Marthas Vineyard, out of loop for a few. I think the solution is to remove the (via an API) from the DIY and open up that category to be like purgatory, where the taste of heaven is on your lips and entirely possible, as opposed to Built Exclusively for Craft where you are in the land of milk and honey. – cmcjane – 2014-06-21T05:37:23.797

2

Lol @cmcjane, that may be the greatest comment I've read all day. I've already given FoxyCart their own category of "3rd party services (no plugins)" as well as had a little Twitter chat with them today. You make a valid point though, I'll definitely keep that suggestion in mind for a future edit (I get the feeling this list will continue to evolve). Thanks for the contributions!

– Lindsey D – 2014-06-21T05:43:49.367

1

@LindseyD Unfortunately I just caught up on this thread, and I don't have any complaints about the current list. But I'll be watching with unnecessary skepticism...

– Matt Stein – 2014-06-23T18:40:30.197

14

I just finished my first Snipcart project and I'm in the process of making a plugin for browsing orders and customers from the Craft control panel. Lindsey D's got the landscape covered with his answer so I can at least share my experience with Snipcart:

Snipcart

For those who somehow skipped other answers or haven't looked at Snipcart, it's a JavaScript cart service that's focused on being quick and easy to implement. You define product links with some data markup, include their cart JavaScript, and get a modal (guest+member) cart and checkout flow that you can style as needed. It can work with physical products, downloads, somewhat configurable products, and it comes with support for flexible promotional code options. There's a somewhat limited (but useful) control panel, integration with a handful of payment gateways, and the option of using live shipping rates from different (selectable) carriers.

Snipcart is not as full-featured as something like Shopify—the reporting is fairly basic and we're hoping for gift certificate support, for example. My client asked to customize the specific shipping speeds/services offered by carriers, but at the time of this answer it's not possible; you can only toggle one carrier or another, not the individual services from that carrier. These limitations are the tradeoffs you get with Snipcart since it's young: it's astonishingly easy to get working right now, but if a particular feature doesn't exist there's not much you can do other than ask and wait.

Team Snipcart

Snipcart's team is small but dedicated and incredibly responsive. It's abundantly clear that they're working hard on building and refining their product. Charles responded quickly and thoughtfully to every question I had, even the annoying didn't-RTFM ones. He was willing to take feature requests, help troubleshoot when I had issues, and he's a nice guy to boot.

Sometimes merely asking about how to do something would result in a feature magically appearing or a problem being fixed.

Integration

If you can define your products in a way that works, you're basically done. There are JavaScript and REST APIs and webhook support for limited extensibility. The Snipcart folks are aware of Craft, to the point of suggesting Craft-specific inventory management on their blog.

Snipcart was easy to drop in and immediately get a working cart. (And we're using Stripe, which is always dreamy in my experience.) Overriding/customizing cart styles was painless, even though Snipcart could change the base cart markup at any time and require some adjustment.

Integration with Stripe was perfectly smooth, in test mode and in live mode—not a single issue or hiccup. Snipcart was available and fast 100% of the time, and every order has been captured and charged flawlessly as you'd expect. (We had some initial configuration issues on our end that we quickly worked out, but those weren't Snipcart's fault.)

We had an awkward account-juggling process since there's only one set of administrative credentials per Snipcart account. We ended up creating a new client-owned account and reconfiguring it for launch. Not a big deal, but it'd be nice to see multiple account users as an option. You can have multiple private API keys, hence the Craft plugin I'm working on for browsing orders/customers.

Conclusion

Snipcart's definitely the scrappy new kid on the block, this simple integration has gone pretty well, and I would look to use Snipcart again for the right project. For a store with more intense/complicated needs, Shopify, Commerce, or Sprout Commerce might give you more control at the expense of more development time.

Matt Stein

Posted 2014-06-19T08:24:53.840

Reputation: 2 676

Any chance it's possible to hide shipping methods/services you don't want with CSS? – Anna_MediaGirl – 2014-06-19T19:53:34.340

@Anna_MediaGirl I considered that, it just made me nervous because it'd be unreliable at best. The services aren't uniquely classed or identified, so I'd have to hide the nth element which could change depending on the services available for a customer's geographic location. So it might be possible, I'm just reluctant to live with on such a workaround. – Matt Stein – 2014-06-19T20:05:44.807

I couldn't agree more. Maybe they will class them for us. I'll ask. If not, I can't use them for the project I'm about to start. Will send an email. – Anna_MediaGirl – 2014-06-19T22:28:20.357

Cool, thanks @Anna_MediaGirl. Regardless I hope the project goes well and look forward to your answer here about whatever you end up using! – Matt Stein – 2014-06-19T22:31:22.993

1From their team... "we plan to allow selecting methods from the dashboard, but adding a css class is a good/fast idea, we will try to do it soon". The CSS class does the trick for me. – Anna_MediaGirl – 2014-06-19T23:05:07.430

1@Anna_MediaGirl Thanks for sharing that! – Matt Stein – 2014-06-19T23:14:32.810

1They added the CSS class to the <tr> tag. Kudos for quick! – Anna_MediaGirl – 2014-06-20T04:42:13.613

11

I've yet to try it but Snipcart seems to be on of the most viable options right now. Essentially it works though HTML/JavaScript and integrates with fields you define in your Craft setup, see their post explaining here. You can even update your inventory using their webhooks, again they explain how to here.

The only others that you haven't mentioned but are in the Straight Up Craft directory are a Shopify plugin by Trevor Davis and Charge by Joel Bradbury - I'm not sure if you have already seen these.

For an upcoming site I plan to try the Snipcart method, failing that I'll fall back to implementing Stripe.js manually and writing a plugin to handle the inventory side of things with Stripe webhooks.

Josh Angell

Posted 2014-06-19T08:24:53.840

Reputation: 2 046

You're right, I'd forgotten about Snipcart. I had seen that blog post. I'm wary of a purely JS solution only because I'm an old school progressive enhancement type of guy. – Mike Pierce – 2014-06-19T11:09:28.820

Shopify unfortunately isn't an option for my client in this case.

Charge looks great for simple payments, but as far as I can tell there's no concept of a cart or shopping session, right? – Mike Pierce – 2014-06-19T11:11:21.520

1Yep charge simply lets you buy individual things, not collect them in a cart. – Josh Angell – 2014-06-19T11:37:43.257

Another method I've been thinking over is writing my own cookie-based cart, using PayPal as the only gateway (you can just POST them a form with stuff in it) and then somehow getting back inventory data on the return from PayPal - I know all this is possible but I've not actually tried any of it! – Josh Angell – 2014-06-19T11:40:32.377

8

Foxycart indicates they are jumping in https://twitter.com/foxycart/status/478952251239567361

cmcjane

Posted 2014-06-19T08:24:53.840

Reputation: 329

So Foxycart is turning on the lights as we inquire http://bit.ly/SXFIr2

– cmcjane – 2014-06-20T16:15:49.783

I think they sensed that they were being talked about somewhere. – Matt Stein – 2014-06-20T18:51:57.557

Indeed, but I think they were already on it, or they have an amazing ability to learn quickly! – cmcjane – 2014-06-20T20:43:19.843