Drupal Commerce 2.x: 2017 in review
Now that 2017 is over and we’re back from our well deserved holidays, it’s time to look at what the Drupal Commerce community accomplished over the past year.
There is no doubt that Drupal Commerce is one of the largest and most active projects in the Drupal community. The #commerce channel is now the most active channel on the Drupal Slack, with 550 members. Over a hundred modules have received contributions from several hundred contributors working for dozens of different agencies. Just a few months after the initial stable release, there are over 2000 reported installations with new case studies appearing every week! Let’s take a closer look.
Commerce and Commerce Shipping
We began 2017 with Drupal Commerce 2.0-beta4. We released another 3 betas followed by 3 release candidates in our search for stability, rewriting the promotion and tax subsystems based on feedback from sites in production, all while maintaining a clear upgrade path. On September 20th we packaged the full 2.0 release, which we celebrated with over dozen release parties around the world, and followed it up with 2.1 and 2.2 in November and December.
Our heavy focus on developer experience meant that we were one of the first Drupal communities to completely migrate from SimpleTest to PHPUnit, converting hundreds of tests in the process. We also made it possible to install Commerce without Composer through Ludwig, a helper module we developed that any Drupal project can accommodate. Finally, we organized a large documentation initiative, with both User and Developer guides in progress.
We collaborated with Adapt A/S to develop Commerce Shipping 8.x-2.x from scratch, released 4 betas through the year with an rc1 now in progress. Commerce Shipping powers Interflora.dk, allowing customers to send flowers to multiple addresses at once, thanks to the module's native support for multiple shipments. The module ships with support for flat rates, while the community has already provided integrations with major APIs such as UPS, USPS, FedEx, Australia Post, NZ Post, and others.
The table below identifies all contributors to Drupal Commerce and Commerce Shipping for Drupal 8 sorted by issue count. Of course, not every issue is created equal in terms of impact and time spent, but we are pleased to highlight and honor some of our most visible contributors.
Total: 430 commits by 135 contributors.
|sorabh.v6, czigor, sumanthkumarc||10|
|steveoliver, googletorp, mitrpaka||7|
|alexpott, bradjones1, GoZ, mlutz||6|
|Berdir, drugan, finne||5|
|AaronChristian, edwardaa, gauravjeet, mbreden, rszrama, skyredwang, steve, swickham||3|
|a.dmitriiev, anthonygq, casey lay, chrisrockwell, DrupalSiteBuilder, FatherShawn, floretan, harings_rob, icurk, jackbravo, maciej.zgadzaj, nikathone, padma28, ptmkenny, rakesh.gectcr, Rob C, rynnnner, tilenav||2|
|Baik Ho, Bojan Živkov, Frank HH-germany, Hubbs, JeroenT, Kingdutch, LotharDesmet, Lukas von Blarer, MegaChriz, Neograph734, OWast, Oostie, Regnoy, Sarahphp1, SchwebDesign, SpartyDan, Sweetchuck, Thomas Cys, TommyChris, Tyler_Marshall, Wim Leers, aby v a, acromel, andypost, arosboro, barry6575, ben.mcclure, borisson_, bryansharpe, cbildstein, chishah92, citlacom, dev.tim, droath, duozersk, durum, emanuelrighetto, erik.erskine, facine, flocondetoile, franksj, garnett2125, guptahemant, heddn, iampuma, jafacakes2011, jantoine, jespermb, jkuma, joekers, josephdpurcell, joshmiller, jtolj, kevinhowbrook, kiwimind, maijs, manojapare, markoshust, marncz, marthinal, mgoncalves, ndf, nicola85, onedotover, opdavies, patrizioemili, rajeshwari10, rgpublic, ryross, saschagros, sbelazouz, shabana.navas, skitten, smaz, smccabe, subhojit777, tbradbury, thomas.cys, tranthanhthuy, troseman, utement, xSDx, ytsurk, zaporylie, zenimagine, zvse||1|
We released the first stable release of Commerce Braintree, with full support for PayPal Express Checkout and PayPal Credit. Braintree is PayPal’s best API, and we are proud to have it as our reference payment gateway. This release wouldn’t be possible without community members like Nia Kathoni (nikathone) and Sophie Shanahan-Kluth (Sophie.SK) who worked on PayPal integration and other issues.
We also released 3 beta releases of Commerce Authorize.Net (RC1 soon!), which now uses the latest Accept.js API (bringing down PCI requirements from D to A-EP) and supports eChecks. Big thanks again to Nia Kathoni (nikathone), Brad Jones (bradjones1) and Chris Rockwell (chrisrockwell) for contributing to the Accept.js integration, testing it in production, and sending endless feedback.
We released two stable releases of the Commerce Square module, a rising star in the D8 ecosystem, backed by Square’s strong APIs.
We led the port of Commerce Stripe, which received two beta releases thanks to plenty of testing and patches from Patrick Kenny (ptmkenny) and Lucas Hedding (heddn).
The list goes on and on. There are currently 55 supported payment gateways listed in our documentation, up from only a few at the beginning of 2017. Commerce Guys has directly reviewed dozens of them, contributing feedback and notes on Ludwig integration, and we’re looking forward to helping them all receive stable releases in 2018.
Essential contributed modules
In addition to the Shipping and Payment module groups described above, we also identify and track progress on a variety of essential contributed modules. These provide significant features that help Drupal Commerce attain feature parity with other major eCommerce platforms and services. While they may not be widely used, they are often critical in the adoption and development process, so we try to ensure each module maintainer gets support from the core team as needed to succeed.
Commerce License and Commerce Recurring - Selling digital products and subscriptions is a major use case for Drupal Commerce and one where we have clear competitive advantages over other platforms. The D8 efforts have been led by bojanz, dawehner and joachim (sponsored by Commerce Guys and Torchbox), resulting in early releases that are still a little rough around the edges but feature rich. We’ll describe their current status and active development initiatives in a future blog post.
Commerce Migrate - Contributors spent months of collective effort on our migration paths, which currently support migrating from Ubercart 2.x (D6) and Commerce 1.x (D7) with planned migrations from Magento and WooCommerce. Big thanks to Acro Media, who has sponsored Lucas Hedding (heddn) and V Spagnolo (quietone), the Drupal 8 Migrate maintainers, to lead the work on this module.
Commerce Stock - Guy Schneerson has been leading the march towards the first Stock alpha, which includes support for multiple stores, multiple warehouses, and transactional stock movements. He needs the community’s help, so please jump in!
Commerce Product Bundle - Olaf Karsten (olafkarsten) and Steve Oliver (steveoliver) have made great progress on a solution for selling product bundles.
Commerce POS - Want to run a point of sale system on Drupal Commerce? Thanks to Acro Media, you can. The D8 version is making great progress, with an improved and reduced codebase thanks to Commerce 2.x API improvements.
We managed to maintain multiple parallel initiatives throughout 2017 in addition to delivering Commerce Guys’ own client work, providing free support to the community in multiple channels, and spreading the word at conferences.
Moving forward into 2018, we now have a published Commerce 2.x roadmap with regular monthly releases (the first Wednesday of every month barring holiday related delays). Our goals include stabilizing as many contributed modules as we can and continuing to improve our documentation. We’d love to have your help, and we’re happy to train you. Join us on Drupal Slack, and let’s do this together!
congrats and suggestion
first of all thanks and great job , im totaly new to drupal commerce but it looks promising to me !
Only one thing trouble me , i didn't see any " customer rating / reviews product " feature ,
i dont understand it seams to be a basic feature and very important today . Did i miss it ?
I saw ' the fivestar ' module but this is not the same .
We need to allow customers who only purchased this product to rate / review this product .
I don't see how to code that and it is a very important basic ecommerce feature don't you think ?
To offload handling of multiple payment processors/gateways, might it make sense to start looking at the Payum library for this?
Start a commerce_payum
Start a commerce_payum contrib and lead the way!