This morning, the company I work for launched their new website, PythonSafety.com.
The interesting thing about this project is that we chose WordPress as the framework for the website. While I may spend some time talking about why we chose WordPress at a later time, I wanted to share some features in the new site that you don’t typically see in a WordPress powered project.
The primary purpose of the new site is to share up to date product information for each of our products with our customers. Products are categorized into “Product Groups” (such as the Tool Lanyards and Tethers group), and products can also be related to other products as a child or parent item.
Depending on how a product relates to another product, how many child products a parent product has, and a number of other variables, a different template is used on the product page that is most suitable for the content. For single products, you might get a view showing product photos, a description, and specifications. For a parent product page, you might get a template that pulls data for whatever child-product is currently selected using ajax using a separate template.
No matter what, we never have to use any custom html/css on these pages making them much easier to update in the future.
Every individual product has it’s own gallery that allows us to show any number of product photos related to that item. Clicking a thumbnail changes the current photo, and clicking the larger photo opens a full size image in a lightbox. Images are cropped automatically to the correct sizes when uploaded into the system.
Products have specifications (essentially just key/value pairs) that are easily managed in the backend. Sometimes, these are used just to give information about a specific product (shown here on the Hook2Hook Coil Tool Lanyard):
Another unique use for Product Specifications is setting up comparison tables for similar products. If a number of products share different keys, we can declare the keys we want to compare, and the theme will automatically generate a comparison table for a set of products (shown here):
We have a number of publications that are available for download on our website. We’ve setup a system that allows us to upload a publication, and then relate that document to any product(s) we want. This allows us to update one publication, which will then update any instances of that publication across the site (example).
Product Search with Autocomplete
Every product has a unique code that is used by our team and by our customers. To make it easier to find information about a product, we’ve setup a search feature that autocompletes as a product code is typed in.
Also in the new site are systems for managing job listings, videos, and press releases. These are a little more generic in nature. Of course, there are also some pages that are more standalone, such as the “About” page.
Built with WordPress
In the past, I’ve asked others when they thought it was appropriate to use WordPress at the underlying framework for a project. A lot of developers frown upon using WordPress altogether (forces you into a “post” data structure for the most part, no MVC architecture, etc). What do you think about using WordPress as a framework for non-blog websites?