Drupal 8 E-commerce Migration Ubercart to Commerce For TheSMSWorks

What started off as a quick fix to resolve a minor problem with Drupal 8, developed into a full-scale project for migration from Ubercart payment system to Drupal commerce. And this in an environment that maintains 90% uptime for customer transactions.

Drupal 8 E-commerce Migration Ubercart to Commerce For SMS Works


TheSMSWorks provide an SMS messaging solution used typically by organisations that send bulk messages to users. The API they have developed enable their customers to send messages programmatically.

A major benefit of this platform is that their customers only pay for delivered messages, whereas, the industry norm is typically set at paying for all sent messages.

Drupal 8 Website Services

  • Ubercart to Commerce Migration In Drupal 8. A five stage project successfully delivered by SEO-Hampshire
Drupal 8 Web Development Services - SEO Hampshire

Why Replace Ubercart For Commerce

Ubercart is dying as a product and whilst an Alpha version for Drupal 8 exists, there is little scope for its long term viability. What instilled a sense of urgency there was no commitment from the sub-modules maintainer UC_Stripe to update this code in Ubercart so that it could accommodate GDPR being introduced in 2021 as well as architectural changes to the Stripe Payment Gateway & Interface.

Shawn McCabe from Acromedia explains in this article – Ubercart is Dead: Why a Migration is Needed ASAP


Project Plan For Ubercart To Commerce In Drupal 8

This project was broken down into five phases. Building the site again on a development domain with the upgrades and enhancement’s enabled the SMS development team to start coding their API to integrate with Drupal Commerce. Phase 5 involved the export of database tables, module code and content from the test server and in to live environment during the server downtime scheduled for weekly maintenance tasks.

Phase 1 – Composer

Rebuild the site with Composer, a dependency management solution for PHP & Drupal. It is used to identify compatibility issues with different versions of code and modules.

Phase 2 – Clone Site InTo Test Environment

Taking a live copy of the database we were able to clone the system with a view for exporting configuration whilst allowing a safe platform for our client to redevelop their own bespoke code for managing customers orders.

Phase 3 – Install, Procedure’s & Testing

Typically the client site is scheduled to go offline once a week for processing and maintenance tasks. Our tasks on this test server was to install Drupal Commerce and provide a solution for importing content and configuration into the live site code, database and content, in an OOH window after the client had completed their backend integration.

Phase 4 – Client Node.js Backend Integration

With the test system running Commerce and Ubercart in tandem, the platform was ready to be loaded with the latest database and for TheSMSWorks developers to update their code so that their back-end system would work with Drupal commerce.

Drupal 8 Ubercart Top Commerce

Phase 5 – Import Config & Content In To Live Environment

Due to the complexity of this project at the offset, I had already made a smart move and brought in to work with me on this project, my former colleague, friend and Drupal mentor Marci.

On the night of the migration, multiple backups were taken, databases were merged, bugs were resolved and the system was brought back up the next day working with the new upgrade in place.

Waiting for a call the next day to confirm everything was ok was a bit of a nail-biting experience. There was a minor issue with some block displays. Other than that, a really good result.