Thinkbean Icon
Atlas ID is now Thinkbean Logo visit our fresh new site
Our work

Custom Product Builder

Choice Metal Buildings

Let's see… Where do we begin. Choice Metal Buildings sells, well, metal buildings. Not just any metal buildings, mind you. They specialize in fabricating, delivering and installing custom metal structures. Not only did they need a new, redesigned website with very complex ecommerce functionality but they needed something very special in addition… They needed a custom product builder.

What that meant was they needed a special application within their website which allowed customers to choose from an expansive range of options while designing a customized metal structure. This "builder" also needed to render an image of the structure as it was being designed by the customer each time an option was chosen (or unchosen). Of importance was the fact the entire site (including the builder) had to work on multiple platforms and all the major browsers. 


Drupal 7 CMS

A powerful CMS (content management system) was needed to allow the staff to easily make significant changes to product images, prices, information, availability, etc. Therefore, it was pretty much a no-brainer Drupal 7 was going to be needed for this job. Drupal core was installed along with a number of modules to get the ball rolling in terms of basic functionality. Customization and implementation of the various modules, along with custom Views and Panels was next in the process. SEO (search engine optimization) was essential as their customers need to easily find them amid some strong competition in this field. Oh, and one more thing… The site needed to be responsive, of course.


The e-commerce portion of the site was a challenging task in and of itself. It wasn't your standard "one price per product" e-commerce set up. Choice Metal has multiple sales regions throughout the US. Each of those regions has certain product type availabilities, certain options which go only with those product types, specific pricing which correlates with each different region and, to top it all off, different state and municipal tax rates not only from region to region but also different tax rates within each region. This required an elaborate rules structure within the commerce platform. In this case, we chose to use Commerce Kickstarter 2 which is a large, feature laden e-commerce module which allows for significant customization specifically for tasks such as this. Nevertheless, the taxing structure alone required a lot of customization to get it quite right. As a matter of fact, it required a combined effort between Atlas and Commerce Guys (the organization which developed the entire Drupal Commerce platform) to make extensive changes to the way certain rules within the module worked in order to get the required functionality operating properly.

Custom Product Builder

The most challenging part of the whole job was designing, building and integrating the custom product builder. CMB initially came to Atlas quite similarly to how many of our other clients end up here: Their current service provider could only go so far with the project before they were out of their depth. CMB needed a company that could handle the project from start to finish. Their previous service provider had the beginnings of a product builder but had, quite evidently, hit a wall after a certain point in the process. We have always developed our web solutions so one site works right on every platform (viewing device) - and the product builder needed to adhere to that standard. That meant the best way to build the builder (if I may use that expression) was in javascript. Therefore, it was decided the previous attempt at the product builder should be scrapped and Atlas would make its own builder from scratch. 

One section of the team would work on designing and building the js builder, getting the UI and UX down properly and figuring out the best way to get all the variables into useable format and into a database which maintained a high availability. Just to add to the level of difficulty where implementation was concerned, the data to be retrieved and used to compute and display the price was NOT algorithmic. That meant the (somewhat disassociated) data needed to be hosted on a rather large spreadsheet. In order to allow for maximum efficiency, it was decided the spreadsheet should be hosted using Google's servers while the rest of the site would be hosted on our Drupal-optimized Acquia servers.

Another part of the team would work on how to effectively implement and integrate the builder into the redesigned site. In this case, the optimal solution for integrating the builder was to use an iframe. Custom API's needed to be written to pull the appropriate information into the checkout process in Drupal Commerce. For example, once the customer had finished building the custom product, all of the specs and the related pricing had to be handed off from the builder to the commerce module and then sent to checkout... but that's not quite all. The final price the customer paid was only a percentage of the total sale. The percentage needed to be calculated then processed as the payment - and you know what that means... more rules. A bill would then be generated for the remaining balance and sent off to the company for processing.

End Result

Well, the end result was pretty remarkable. With the proper application of planning, effort and information architecting CMB got a completely redesigned ecommerce website with an integrated custom product builder. Now, visitors to the new CMB website can choose to browse through the product listings the company offers as "off-the-shelf" metal structures or they can choose to go to the builder. There, they're able to design a metal building to their exact specifications. They get to see how each change they make to the structure will look and, once they're happy with their final building, they can place the order and their custom metal building is on its way!


  • Custom Product Builder
  • Responsive Web Design
  • E-commerce
  • Powerful CMS
  • Search Engine Optimization
  • Custom Module Development