Project Summary and Client Background
Shaw Industries, Inc. came to Bit-Wizards with a need to integrate their legacy order processing system with a more user-friendly B2B e-commerce web portal.
Shaw Industries, Inc. is more than 22,000 associates worldwide bound together by a common vision to create a better future. By combining deep market knowledge with new ways of thinking, Shaw drives innovation and sets the standard for next-generation manufacturing. Shaw supplies carpet, resilient, hardwood, laminate, tile and stone flooring products and synthetic turf to residential and commercial markets worldwide. Shaw is a wholly owned subsidiary of Berkshire Hathaway, Inc. and is headquartered in Dalton, Ga., with salespeople and offices located throughout the U.S., Australia, Belgium, Brazil, Canada, Chile, China, India, Mexico, Singapore, United Arab Emirates and the United Kingdom.
Shaw came to Bit-Wizards with two separate legacy systems that process orders for flooring materials for their B2B customers. They needed a web portal for all account managers and franchisees to visit and place orders. One of the challenges for this project came from the way the flooring industry defines their units of measure. All flooring products have specific quantities available for order, which Shaw defines in units and decimal quantities. The Kentico out-of-the-box e-commerce cart functionality uses integers, not decimals. Another challenge came due to the need to manage hundreds of thousands of product records in Kentico. Moreover, as the project shifted into two phases, other challenges appeared such as the need to have a more rapid way to test during development and also a shift from the out-of-the-box portal development method to MVC.
Lastly, the Shaw development team wanted a partner with that they could work together with to design and architect the solution. It was vital that Bit-Wizards educate and guide them in the architecture, development, and maintenance of the final solution, taking all their business goals into account.
Shaw needed a way to simplify their ordering process for several retail and franchise customers. They own a legacy system that processes their orders and needed Bit-Wizards to design and lead the Kentico development of a more straightforward front-end user experience, and build out the e-commerce portion of the web portal that would integrate with the order systems and streamline their entire process.
- Achieve a simplified user experience with new design and functionality using responsive design techniques
- Fully integrate ERP, legacy product database, and web services
- Improve the front-end web portal speed for the end user
- Make testing during development sprints easier and separate from the front-end
- Develop an architecture that is easy to modify and maintain over time
Initially, Bit-Wizards worked with Shaw on a purely out-of-the-box version of Kentico. As the e-commerce project moved forward, the need for custom code became apparent to the Bit-Wizards team. The custom code would allow Shaw to manage and display their data better and link it across the web portal for their users. The needs for a more user-friendly interface and code testing became priorities. The Bit-Wizards team offered a solution in the form of a rewrite of the original project as a Kentico MVC site. Now Shaw had a new user experience, and a new method of development allowing for testing without disturbing the front-end users accessing the site. The final solution gives Shaw the ability to work on continued performance enhancements and make future-proof decisions about their legacy systems with the support of the Bit-Wizards development team.
Of all the consulting companies we've worked with, Bit-Wizards is one of the best. Their culture is a balance of friendly and engaging professionalism and highly technical expertise. Bit-Wizards was flexible and accommodating and led us down the right path that made our project a success. We hope to work with the Bit-Wizards team again.
- Shane Foster, Applications Manager, Shaw Industries
At the onset of this project, the Bit-Wizards team dedicated two full resources to the Shaw development team to be technical liaisons to be sure that their team had adequate support during the architecture and development of the solution.
In the first phase of the project, the Bit-Wizards team fully defined the Shaw team’s development capabilities, defined user roles, set the e-commerce cart customizations requirements and established the order flow process. Then the team began to work in sprints to build custom modules for all the data needed for the Kentico smart search.
Shaw desired for the original web portal to be as ‘out-of-the-box’ as possible, which meant the team used the default Kentico design templates from the start.
Unlike typical Kentico e-commerce stores, which use SKUs as page types and have one to 200 products, this web portal project required 40,000 customer records and 500,000 product SKUs. Furthermore, due to the restricted access where specific customers were only allowed access to certain products, it was often necessary to filter through joined data sets with millions of records. Unfortunately, the scale of data was too large for the Kentico out-of-the-box functionality to handle. The product SKUs were moved to utilize custom module functionality which works best for large-scale data.
At this point, Shaw was using Online Marketing Contacts and Account functionality to manage their customer and contact data. This state of management of the contact and customer data would change during the next phase of the project.
Shaw also needed the ability to search their data. This search focused primarily on products but included some search used for admin pages that manage permissions to customers and contracts. Unfortunately, Kentico’s smart search functionality does not link across custom tables. To solve this issue, Bit-Wizards built smart search indexes to join the data across custom tables. They also built indexers to update, delete and modify the indexes, which was a first for the Bit-Wizards team. All the work on smart searches allows Shaw web portal users to access the large scale of data in a way that makes sense from a business standpoint.
During the second phase of the project, the Bit-Wizards and Shaw development teams improved the integration with legacy systems and corrected the way Shaw was managing Customer and Contract data. Implementing best practices, the Bit-Wizards team altered contact and customer management by using the "users" functionality as the base of the permissions (which is more concrete than the original Online Marketing Contact functionality) and then linking the users with custom tables that define permissions for accessing customers, contracts, and products.
The Kentico web portal sends orders to legacy systems and then requests information back to make sure the data is in sync across the two locations. However, Shaw defines products multiple ways and is not the same in the web portal. Therefore, the Bit-Wizards team created an ‘umbrella system’ using classes and objects and communicating using WCF (Windows Communication Foundation) and SOAP (Simple Object Access Protocol), they grouped the orders when sending and receiving information from the legacy system. This solution would ultimately simplify and hide this unnecessary complexity from the users on both ends.
Another part of the second phase of this project centered on a redesign and internal rebrand of the web portal. The Bit-Wizards Digital Marketing team was brought in to build wireframes and icons for a completely redesigned version of the Kentico web portal.
Lastly, testing is essential to the client, and the current web portal built in the Kentico portal method makes it difficult to test code only without making other changes to the front-end. The Bit-Wizards team built two prototypes to demonstrate the options for better testing during development. One was MVP (Model View Presenter), which would make the current web forms testable. The other was using Kentico MVC (Model View Controller). Shaw ultimately chose the MVC solution for the rewrite of the entire web portal. Bit-Wizards was able to split the architecture of the site into layers. This layered structure allows the development team to build core business logic without having to affect the Kentico front-end thus providing easier access to test code during development.
MVC development was not without its challenges. ADFS (Active Directory Federation Services) works differently with the MVC development method. Bit-Wizards’ development team had to provide a federation manifest during the authentication process along with other more custom fields and logic. However, this is an industry standard, and Shaw can now use this functionality to easily authenticate to other external web services depending on their business needs.
Contrary to Kentico’s documentation, custom smart searches do work within Kentico MVC, but they require a little more set-up to work correctly. The Bit-Wizards team found that the solution required the two website projects (all MVC projects must have two sites, an admin site which is the Kentico admin portal and a front-facing MVC site) and a third project that is linked to and built with both the front-end and back-end websites. This third project contains the custom smart search index code, and because it is linked to both projects, it is viewable to and usable by both of the websites. Along with the MVC rewrite, Bit-Wizards also did a database redesign to help reduce the number of indexes and their size. The indexes now build much faster.
Caching data access was also a primary concern during this project. Moreover, due to the layered architecture, Bit-Wizards was able to build a single caching location for all the SQL Database requests and clear it using Kentico’s built-in caching functionality. This custom caching code dramatically speeds up the end user experience on the front-end of the web portal.
This integrated web portal solution built by Bit-Wizards enables the customer to access the ordering platform to place orders without the need to call an Account Manager. The new user-focused design and interface provide the Account Managers a pleasant ordering experience without the need to access the old legacy system. Looking to the future, Shaw will be able to use this integration to unify ordering processes from their other various brands and microsites across their business units.