How to Get Stuff Done in ShopSite

Scott Truesdell

started: March, 2013

The Forespar web site is powered by the ShopSite e-commerce system.

ShopSite is a shopping cart system and a content management system (CMS).

There are several large databases which drive ShopSite (Forespar), the most significant for us as product managers are the Products database and the Pages database.

Of primary concern is that ShopSite is not a particularly robust system. It performs a minimal amount of error-checking so it is possible to enter data which will “break” the system, corrupt the database and cause the site to not function correctly. Please take time to go through the notes in the section “Managing Products” because this is an area which has been massively corrupted in the past.

The Main Components of ShopSite

Products

The Products database holds all the information about each individual product we sell. Each product record (or ‘row’) holds information specific to that product such as Part Number, Description, Price, Shipping Weight, etc. Of special significance — and somewhat hidden — is a list of pages each product should appear on.

Pages

The Pages database holds information about [most of] the web pages on the site. The Pages draw on material in the Products database.

Templates

The other main part of ShopSite is Page Templates. When the site was originally implemented, which templates to use for what types of pages was not clear and as a result the site ended up with way too many templates. The Template Guide [not fully documented yet] should be consulted before adding a new page so you can determine which template to use for which type of page.

How Products, Pages and Templates work together

Each product in the Products database contains a list of Pages it should show up on.

Each Page contains the name of which Template it should use.

Templates contain the appearance of a page, boiler-plate text and — most importantly — placeholders for various bits and pieces stored elsewhere, the most significant of these bits & pieces are data from the Products database.

When you click on the big blue Publish tab, those three components are combined to form a standard static web page which resides on the server in the location specified in the Page spec under Advanced Info, File name:. In this example, that location is “Cleats.html”. The relationship looks something like this:

creating a web page

click image for enlarged view

The ShopSite system is a hybrid that uses dynamic* templates and data to create static* web pages during the Publish operation. In a fully dynamic system, there is no Publish button, nor is there a complete page [Cleats.html] stored anywhere; pages are assembled on-the-fly from dynamic content pouring into templates.

In ShopSite's hybrid system, one could go in and edit that generated static page if one wanted to. However, next time the Publish button was clicked, a new static page would be generated, over-writing the hand-edited version. Hand editing ShopSite-generated pages is not “the ShopSite Way” — don't do it.

definitions:

static
In relation to the web, static pages are web pages that exist on the server in their final finished form. If you have two static pages, one for Big Stick and another for Giant Stick, those pages contain mostly identical data with the exception of the bits that are specific to Big Stick or Giant Stick. Identical data might be a Contact phone number. If that Contact number changes and you have 1,000 fully static web pages, you need to edit 1,000 pages and change the number.
dynamic
In relationship to the web, [fully] dynamic means that the page as presented to the user is not assembled until it is requested. It works almost exactly like creating a custom-length spinnaker pole from components you have in stock. The components of dynamic pages live in various areas such as databases, configuration files and templates. Now if that Contact phone number changes, the web editor changes it in one location and every time that data is requested, it delivers the stored number.
ShopSite does create some fully dynamic pages. An example is the shopping cart page which shows a customer what they have in their ‘cart’ for the current shopping session. However, most of the pages on forespar.com are hybrid.
hybrid
Dynamic data is used to create static pages via a separate operation performed by the web site maintainers/editors. Using our spinnaker pole analogy, this would be like building a few J24 spinnaker poles to keep in stock for fast shipping.

click for graphic representation of static, dynamic and hybrid sites.