Sector(s)

Team Members

Project Team

The project was led by CodeLift founder Niels de Feyter, who managed the complete migration remotely from the Netherlands to the U.S.-based client. The project included infrastructure replication, e-commerce migration from Ubercart to Commerce, AI-powered code refactoring, and visual regression testing across 40+ screens. Communication was maintained through regular video conferences.

Visit the site

Visit the site

Organizations Involved

Community contributions

config_uuid_deterministic - A Drupal module for deterministic UUID generation in configuration management, useful for multi-instance deployments.
Cram-A-Lot is an American manufacturer providing waste and recycling equipment solutions with over 70 standard compactor models and 30 standard baler models. CodeLift rebuilt and migrated the Drupal 7 Ubercart e-commerce site to Drupal 10 Commerce, preserving all 100+ configurable products, quote workflows, and content with zero downtime and zero post-launch issues.

About the project

Cram-A-Lot provides equipment solutions for America's waste and recycling needs, offering over 70 standard compactor models and 30 standard baler models. Their website serves as both a product catalog and a quote request platform for industrial customers.

Goals and Requirements:
- Migrate from Drupal 7 with Ubercart to Drupal 10 with Drupal Commerce
- Preserve all 100+ configurable product nodes with field-level structures
- Maintain the quote request system and business workflows
- Deliver a pixel-perfect rebuild matching the original design
- Achieve zero downtime during migration

Challenges:
- Migration from Ubercart (Drupal 7) to Drupal Commerce (Drupal 10) required a complete e-commerce architecture shift
- Over 100 product nodes with complex configurations needed to be fully rebuilt
- The quote request system required preservation of business logic and order workflows
- Cross-geography collaboration between the Netherlands and the United States
- First U.S.-based client requiring remote infrastructure replication

Approach:
- Structured migration from Ubercart to Drupal Commerce, adhering closely to the original architecture to preserve existing business logic and operational continuity
- Complete production environment was replicated in a controlled local infrastructure for remote development and testing
- Regular video conferences provided a direct and effective channel for requirements gathering, progress validation, and feedback loops
- AI was employed to refactor and modernize custom modules and legacy code while maintaining functional parity
- The quote request system and all 100+ product nodes were fully rebuilt in Drupal 10 with field-level structures and configurations preserved
- Automated regression testing across 40+ screens was implemented using screenshot-based validation

Outcomes:
- Zero minutes of downtime during migration
- 100% data parity achieved
- 100+ products successfully migrated
- 40+ screens validated with visual regression testing
- Zero post-launch issues
- Core business functions (quote requests, product logic, admin workflows) remained fully intact

Client Testimonial:
"Working with CodeLift's team made the daunting task of upgrading from Drupal 7 to 10 an easy and seamless process. We were impressed by their communication throughout the whole process and their ability to modernize our site, while keeping our design and content." -- Cesar Avila, IT Manager at Cram-A-Lot

Why Drupal was chosen

The client was already running on Drupal and chose to modernize their platform rather than replatform. Upgrading preserved their existing content, workflows, and team expertise while gaining access to modern Drupal's improved security, performance, and extensibility.
Cram-A-Lot (cramalot.com)

Technical Specifications

Drupal version:

Key modules/theme/distribution used:

Why these modules/theme/distribution were chosen
Drupal Commerce was the natural successor to Ubercart for the e-commerce functionality, handling product catalog management and quote workflows. The Migrate API powered the structured data migration from Drupal 7. Webform was used to rebuild the quote request system. BackstopJS provided automated visual regression testing across 40+ screens to ensure pixel-perfect accuracy.