Project:

Craft 2 to Craft 3 Upgrade

scroll icon
Design Craft Door - Desktop Home Page

Catastrophic Failure

Design Craft Door reached out when their previous hosting company went incognito, leaving them in the lurch with a custom-built site that was unreachable online.

Like many companies, Design Craft Door invested heavily in a website that could be the public face of the company. They developed online tools to help the contractors and designers that are their customers. They set up easy-to-access accounts with pricing and lists of favorite products, streamlining the creation of beautiful custom cabinets for any taste. So, when they had done all of the right things to build a quality website for their users and found themselves up a creek so to speak, they needed a new partner with the technical capabilities to recover their site, fix its problems and get them back on the path to success.

Technology:

Javascript/Twig

Craft CMS

Custom Plugin Development

Roles:

Emergency Recovery

Backend Development

Project Management

DevOps

Hosting

On-going Maintenance

Site Recovery

In order to fix it, we first had to get access to the code

When their website went down, Design Craft Door had reached out to their previous developer who was also hosting it. After receiving no reply, DCDoor got in touch to see if DDD could help, and we happily dove in to figure out what had gone wrong. We found that the site's server had configuration issues that were keeping the pages from being able to load. PHP couldn't fully run to render the pages. In addition, because of these server issues, the site couldn't be accessed through the GUI interface that Design Craft Door had access to, leaving them entirely dead in the water.

Data Driven Design was able to gain access to the site via SSH and then create backups of the website's database and file structure, essentially replicating it, via CLI. We then transferred these files to a newly configured server.

Additional fixes needed, now brought to light

Upon further examining the system, we found a couple of other issues. The previous developer had used Solr for searches and loading products across a significant part of the site via a custom plugin that they had written. Because Solr isn't officially supported by Craft, this created long-term maintenance problems for the client. We also discovered that they had misconfigured AWS S3 for their assets and that the site was on Craft 2, which had publicly announced end of life dates.

Design Craft Doors - Door Divider

Fixing the Filtering and Search

In order to fix Design Craft Door's maintenance problems, we removed Solr from the application and re-coded the components to use Craft's underlying functionality for searching and caching.

It was extremely important to the owner of DCDoor that the default order of the products was very specific. We spent a lot of time figuring out exactly what that was and ensuring that the doors were always presented in the requested order when a user first came to the page.

Design Craft Door - Website Filtering Functionality Animation

Upgrading from Craft 2 to Craft 3

Since Pixel & Tonic, the creator of Craft CMS, had made significant upgrades and modification between Craft 2 and 3, we knew there were end of life dates for the Craft version that Design Craft Door was using. Craft 2 bug fixes were only going to be supported until the end of January 2020. This meant that Pixel & Tonic would no longer be addressing any issues after that date. In addition, security fixes would only be supported for an additional year - through January 31, 2021.

After recovering the site and fixing the most pressing issues, we upgraded the underlying CMS to the most recent version of Craft 3. The development team then went through each of the site's page templates and made code changes to ensure that all of the underlying code was revamped appropriately.

Design Craft Door - Custom Door Size Calculator Plugin

Creating Custom Plug-ins for Craft 3

Following the upgrade to the system itself, we needed to also update the custom calculators and favorites list that had been created for the site. Since this wasn't a point and click exercise - like many pre-made plugins - this required understanding the function of each and then using documentation for Craft 3 to understand the differences between how they had been built in the past and how they would need to be built to work with Craft 3.

We recreated three separate custom plugins. The first calculates the shipping dates of various product types. A second one calculates the minimum door size for the custom cabinets. The last one creates the logic for adding door and drawers styles to favorites lists for users who have accounts to log in to.

Turning these into custom plug-ins was a huge learning opportunity. In the past, we have made custom plugins and integrations for Craft 2 - the previous version of Craft - but the significant changes between the systems meant we were able to learn a lot by building these on Craft 3.

Design Craft Door - Custom Shipping Dates Calculator

A Continuing Relationship

Design Craft Door has pinged us a few times for other small problems with their site. Recently, they found glitches in how the product filtering was implemented. The way it was originally set up had javascript errors that, under certain circumstances, would prevent a user from completing their search successfully with the fields provided. The DDD team located the problem and implemented a fix, going live two days later.

Our team has greatly enjoyed getting to know & working with Design Craft Door

Our on-going relationship will keep the lines of communication open, allow DDD to be a partner in finding better solutions for their business and help foster a strong, positive business community.

Need a better partner?
We're here for you