Ubercart is dead: Why migration is needed ASAP
Ubercart, once the go-to commerce option for Drupal and the precursor to Drupal Commerce, is slowly fading away. Its usage has declined for years, and a stable Drupal 8 release will never happen. Even one of the original creators has moved on to support a new Drupal ecommerce solution instead of continuing on with Ubercart.
This post is for you if you’re running an ecommerce site that uses Ubercart. We aim to show you why you should consider moving off of Ubercart now instead of waiting until it finally reaches end-of-life.
UPDATE: Click here for an Ubercart is Dead roundtable discussion. The roundtable discussion is a follow-up to this article in the form of a webinar-style question-and-answer recorded video session with Shawn McCabe.
The decline of Ubercart today
As mentioned in the introduction. Ubercart usage has been declining for years. The Drupal 7 version of the module is where it saw most of its success, with usage peaking in 2014/2015, but usage has been continuously dropping since then. The following graph is a snapshot of Ubercart’s usage history recorded on Drupal.org.
Ubercart usage history (source)
Ryan Szrama, one of the original creators of Ubercart, moved away from it and started the Commerce module for Drupal as a replacement. Since then, most of the ecommerce community around Drupal has also moved along with him making Drupal Commerce the new go-to option for ecommerce built on Drupal. Not only does Commerce now have more installs for Drupal 7 and Drupal 8, but it is also a much more active development community.
Commerce usage history (source)
Ubercart and Drupal 8
The Ubercart module has never moved over to a proper Drupal 8 release. Development is stuck in alpha; without a new release in over 3 years, there will never be a stable Drupal 8 release.
What “alpha” means
In software development, alpha is a term given to a software release that is still very much in development and not ready for production. Here’s the description of alpha from Drupal.org.
alpha: Most reported errors are resolved, but there may still be serious outstanding known issues, including security issues. Project is not thoroughly tested, so there may also be many unknown bugs. There is a README.txt/README.md that documents the project and its API (if any). The API and DB schema may be unstable, but all changes to these are reported in the release notes, and hook_update_N is implemented to preserve data through schema changes, but no other upgrade/update path. Not suitable for production sites. Target audience is developers who wants to participate in testing, debugging and development of the project.
In contrast, the Drupal Commerce module has had many full production-ready releases for Drupal 8 and follows a release schedule for bug fixes and new features. The group behind Drupal Commerce is actively developing the core software, and the wider community is also active in supporting the project.
Ubercart and Drupal 7
What little Ubercart development still happens focuses on maintenance of the Drupal 7 version. The catch here is that Drupal 7 reached end-of-life in November 2021, which will likely spell the effective end of Ubercart as well. If you’re using Ubercart and Drupal 7 together and want new features and active development, that realistically ended years ago when most of the contributor community moved away from the project.
Here are a few snapshots of the commit history for the core Ubercart and Drupal Commerce modules. A commit is a term given to code changes that have been added to the module. Commits are typically code improvements, new features, bug fixes and security updates that have been written, tested and approved for release.
Ubercart commit history
Commerce commit history
When looking at the graphs above, it’s important to know that it’s common to see several commits trailing off over time. This is because most of the core software is built early on, so fewer commits are made over time as the development of the core ramps down. What is important to see is that the development of Drupal Commerce over Ubercart is still continuing, meaning new features and code improvements are being actively made to the core Commerce software but not to Ubercart.
Another point to note about these graphs is that when commits are ramping down to the core software, development efforts are likely to be moved to community-built extensions. This data isn’t reflected in the graphs above. The community-built extensions are the ecosystem of new add-ons and features that aren’t found in the core software. In the case of Ubercart, this community development is very small and limited, whereas for Drupal Commerce community is very active and engaged.
Where to go from Ubercart?
You’ve probably guessed this already, but the clear path moving away from Ubercart is to Drupal Commerce. Commerce is the Ubercart replacement, capable of so much more. It’s also Drupal 8 ready and will provide a painless transition to Drupal 9 when that happens.
Commerce improvements over Ubercart
The following is a list of improvements Commerce for Drupal 8 has over Ubercart:
Drupal 8 improvements over Drupal 7 include:
- Robust caching and performance for authenticated or unique users (very important for any ecommerce site)
- Drupal’s new rolling release schedule, no more large updates between versions, makes updates easier
- The modern object-oriented design makes testing, extension and use of 3rd party libraries easier. Commerce follows all of the architectural improvements for Drupal 8 and has, in some cases, led the way by innovating first.
Commerce improvements over Ubercart include:
- More secure payment architecture. Commerce encourages the lowest level of PCI risk possible and enforces good practices with its payment API, compared to Ubercart’s primarily DIY payment model.
- Proper variation-based product model with unique SKUs for each variation
- Robust and accurate promotions, discounts and pricing adjustments. If you’ve struggled with pricing accuracy in Ubercart, you’ll understand.
- Multi-store and multi-currency support is robust and built-in.
- And the list goes on…
Why move now instead of later?
While you could wait until Drupal 7 end-of-life to move your ecommerce site off of Ubercart and onto Drupal Commerce, this is not something we would ever recommend. The truth is that by waiting until the end, you’re taking on a lot of unnecessary risk for your business and your customers. You don’t want to be in a position where you’re scrambling to make it happen quickly when suddenly you’re not getting any more security updates to Drupal 7 AND Ubercart. That is a worst-case scenario, and you would be wise to avoid it.
Right now is an ideal time for you to consider making the switch. Drupal 8 and Commerce have been used in the wild for years, and the software is very stable. Most likely, all the features and functionality you currently use have already been ported to the new versions. The tools that help migrate Drupal 7 and Ubercart over to Drupal 8 and Commerce have been created to assist with the move. Really, from a technical standpoint, there’s no reason not to make a move now.
Of course, it can’t be denied that completing a migration to the latest and greatest does take time and effort to do, and there will be a cost involved. All the more reason to start the process now. Right now, you have the time to find the help you need and to properly budget and plan how your migration will be executed. Right now, it’s not a hassle; it’s an opportunity to make your business better for both you and your customers while at the same time correcting any of the little things that bother you about your site now.
Acro Media has been helping ecommerce owners and operators with consultation and development for over 10 years. We’re intimate with Ubercart and Drupal Commerce, and we even staff some of the talented people who built Commerce and the migration tools everyone uses to migrate off Ubercart. If you want to learn more about how your migration would happen, we would love to talk. Click the link below to get started.