37

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?

1
  • 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
    Aug 14, 2014 at 18:31

4 Answers 4

40

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.

23
  • 2
    @MikePierce I doubt I'm the first one either, but you're not alone.
    – Matt Stein
    Jun 19, 2014 at 17:28
  • 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
    Jun 20, 2014 at 19:09
  • 3
    Sorry 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
    Jun 21, 2014 at 5:37
  • 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
    Jun 21, 2014 at 5:43
  • 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
    Jun 23, 2014 at 18:40
15

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.

6
  • Any chance it's possible to hide shipping methods/services you don't want with CSS? Jun 19, 2014 at 19:53
  • @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
    Jun 19, 2014 at 20:05
  • 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. Jun 19, 2014 at 22:28
  • 1
    From 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. Jun 19, 2014 at 23:05
  • 1
    They added the CSS class to the <tr> tag. Kudos for quick! Jun 20, 2014 at 4:42
12

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.

4
  • 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. Jun 19, 2014 at 11:09
  • 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? Jun 19, 2014 at 11:11
  • 1
    Yep charge simply lets you buy individual things, not collect them in a cart. Jun 19, 2014 at 11:37
  • 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! Jun 19, 2014 at 11:40
9

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

3
  • So Foxycart is turning on the lights as we inquire bit.ly/SXFIr2
    – cmcjane
    Jun 20, 2014 at 16:15
  • I think they sensed that they were being talked about somewhere.
    – Matt Stein
    Jun 20, 2014 at 18:51
  • Indeed, but I think they were already on it, or they have an amazing ability to learn quickly!
    – cmcjane
    Jun 20, 2014 at 20:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.