E-STORE FRAMEWORK PRODUCT BROWSER
THE SHELVES IN YOUR VIRTUAL STORE

Sections:
How the two items tables work together
Dropdown lists
Drilldown Browsing
Direct Links to Drilldown Browsing
Product lists
Product Category icon images
One Item Product Categories
Product Category Descriptions
Product brand Descriptions
Page Titles
Page Toppers
Breadcrumbs
Brands
Special Pricing
Subcomponent page editing
Skins
Field Display
Sorting Order
Sort / filter dropdown
Hidden Sort Characters
Product Matrix Display
Tabbed product Description
The Showcase Page
Featured Products
SendSafe DB Columns that are searched
SendSafe DB Columns that Control Product Browsing
Duplicate SKU and Duplicate Item Records
Browsing Display Control
Context Senstive Content
Decommissioning Products
Image File DB Entry Format
Size of thumbnail images
Product Browser Setup
Browser.asp Parameters

The SendSafe e-store framework product browsing system is optional code. This code base can be purchased separately by SendSafe customers (click for details and to purchase).

E-store metaphors mimic brink and mortar stores in many ways. E-stores have: aisles, checkout counters, searches (asking the clerk where something is located), and more. Keep in mind that sales go up as the online experience moves closer to the brink and mortar experience. We have millions of years of hunter gatherer experience hardwired into our genes. This knowledge should guide the design of all e-stores. Simple is better.

SendSafe e-store framework provides:

The e-store frame code is located in the \E-Store Framework\includes\ subdirectory in the SendSafe installation folder. The \E-Store Framework\ folder contains an entire working demo site using the e-store framework.


How the two items tables work together

The way relational databases work is they combine records from several different tables together to get a complete dataset to operate on.

For products, you have both the Items table and the ItemsExt table. A pair of records from these tables are combined together to form a complete dataset which describes a single product in your store.

Data columns are NOT duplicated in different tables; so for example you will not see SKU in the ItemsExt table. The SKU is defined in the Items table.

The only column which is duplicated in both tables is the Primary key; for these two tables that key is called ItemCodeId. The primary key is what links pairs of records from the two tables together. Records in the Items and ItemsExt table which define a given product both must have the same primary key.


Dropdown lists

The drop down lists are created from the brands, category, subcaterory, and items (fullnames) columns in the database. The items dropdown is not advisable for stores which have more than a 100 items due to list length.

The drop down lists are alphabetically sorted by the text which appears in the list (i.e. the brands list is alphabetically sorted by brand name).

The dropdown lists can be cascaded together, so that each selection from a list limits what is displayed in the following lists. For example: selecting a brand from a list, will limit what is displayed in the category and subcategory lists to those products which are the brand which was selected. This operation is optional.

The content of the Brands and Category dropdown lists are cached for performance reasons. The cache is updated once a day at the time of "first page access" after midnight. When making database changes it is better to use the drilldown browsing pages to verify product changes (caching can be disabled on these pages). Caching of dropdowns can be turned off for a period of time if you plan on making a lot changes and want to see the changes in the dropdowns.

A QuickLink droplist is also available. The quicklink list displays as an optional dropdown on the showcase page. This dropdown displays all products within the same subcategory.

Example QuickLink SQL:
Select distinct Fullname
from items
where subcategory in (select distinct subcategory from items where itemcodeid = 123


Drilldown Browsing - Product Matrix and List Displays

Drilldown browsing is the display of products in a structure that resembles a family tree. Products are displayed in hierarchal lists of categories, subcategories, and items. In drilldown browsing you start with a list of top level categories, then drill down to subcategories, and then from subcategories you drilldown to lists of products.

As an alternative you can also start with brands, and from brands drilldown to lists of products. You can use brands as a top level category OR super-category to achieve 5 levels of drilldown (including the showcase page). Each hierarchal list is alphabetically sorted by the text in the list.

Caching Note: Since the top level browsing pages on most sites are static and seldom change, these toplevel pages of category and brands are cached for performance reasons. This caching can be turned off at times such as initial development of the site (see: browserCacheEnabled=true for configuration). The cache refreshes once a day a 12:00 midnight picking up any DB changes that have been made during the day. The cache can also be forced to refresh by deleting the cache file.

Brands Note: If brands drilldown is used on the site then you will need to reset the brands selection for some of the custom browsing links you may have. For example, a top level category display (?TopList=subcat) will show only the categories containing a "previously selected brand" UNLESS brand selection is reset. There may be times when you want a custom link to include "filtering" based on a previously select brand, in which case you would not want to include the rest command in the URL.

Brand selection is reset by including the ResetBrand command as a URL parameter in a hyperlink: ?ResetBrand=yes

One Item Category Flagging: If an category name is flagged with the special hidden character "@" then drilldown browsing will go directly from the category icon to the showcase page skipping all intermediate pages.

This flag can be placed anywhere in the name but it is recommended that it be placed at he end of the name so that it does not effect sorting.

There a two basic layouts for drilldowns: Product Matrix and Product List. The fundamental difference is that Matrix displays thumbnails and list displays text (with an optional thumbnail at the product list level). Below are illustrations of these two options.

This illustrates Matrix Drilldown Browsing

This is the top level display of category icon thumbnails. Clicking on any image will drilldown to the level of subcategories.

There are two types of category displays: standard and CSC Enhanced.

Standard category browsing with icons and link:

CSC Enhanced category browsing with icons, CSC text, and link:

This is a display of subcategory icon thumbnails. Clicking on any image will drilldown to the level of products.
This is a display of product thumbnails. Clicking on any image will drilldown to a product showcase page. Product images can include an add to basket button and description (depending on how the e-store framework is programmed).

Simple display of products with link to showcase page:

Advanced display of products with buy button, descriptions, and link to showcase page:

This is a product showcase page.

This illustrates List Drilldown Browsing
This is the top level display of categories. Clicking on any category will drilldown to the level of subcategories.
This is a display of subcategories. Clicking on any subcategory will drilldown to the level of products.
This is a display of product. This can optionally include thumbnails of each item. Clicking on any hyperlinked na,ed will drilldown to a product showcase page. Clicking on an addToCart button will add the item to the cart.
This is a product showcase page.

Recommendation: You should never have more than one page full of categories or drilled down to subcategories. Having more than one page is a very common mistake made by businesses new to e-commerce. Any product categories or subcategories that fall onto second or third pages will receive as much a 10 times less exposure. Many of your customers will never know those 2nd page categories or subcategories exist. We fell so strongly about this configuration that SendSafe does not support multiple pages of categories or subcategories (though there is no limit to the number displayed on a single page). We do fully support multiple pages of products items because it is impractical not to when looking at search results or drilldown browsing for store with a large number of different products. However, in an ideal world there would never be more than a page full of products either.


Drilldown Browsing - Direct Links

You can create links directory to any page visible in drilldown browsing and many browsing pages which are not.

To create direct links into product browsing, it is very important to understand that what is displayed in drilldown browsing is defined not only by the current location (i.e. category or sub-category) but also by the path taken down the product tree to get to that location. It is context as well as instance.For example: say you had a sub-category named shirts BUT what is displayed for shirts can and should be different if the path take to get to shirts went through a category named: WOMEN'S or MEN's. i.e. one should display only men's shirts and the other only women's shirts (even though it is the same sub-category).

There are two options for direct links:

  1. Establish a path taken
  2. Remove all path relevance (i.e. remove all context)
Establishing a path taken (context) will create a product tree display which matches customer drilldown browsing. Removing all path context will create a product tree display which is potentially broader (i.e. contains more products) then normal customer drilldown browsing will produce. Note: Any broadness that results may not be evident until deeper drilldown is performed.

Example of a direct link which jumps to a list of subcategories complete with path context:
http://www.mybiz.com/browser.asp?Lev2List=SNEAKERS&Start=0&BrandsTL=Nike
Example of a direct link which jumps to a list of subcategories without any path context:
http://www.mybiz.com/browser.asp?Lev2List=SHOES&Start=0&ResetBrand=yes
Example of a direct link using SendSafe JavaScipt support functions:
<A HREF="javascript:gotoRootURL('browser.asp?Start=0&Lev2List=' + escape('Chinese Foods'))">
note: how an escape() function call is used to remap characters which would be illegal in a URL.

Below is a table containing the URL parameters which are typically used to create direct links.

"AdvSearch" Generates a multi-row list of all items that match this search phrase (searches Multi columns in the DB) This flag is typically only used by the [ SEARCH ENTRY BOX ] to perform free-form product searches The columns that are searched are: keywords and fullname
"TopList" SUBCATEOGRY LIST (The Standard): TopList=SubCat THEN this will result in a list of all the categories with Hyperlinks to all SUBCATEGORIES user the category. See below for subcat usage.
"TopList" ITEMS LIST: TopList=yes THEN this result in a list of all the categories with Hyperlinks which immediately list all items in a subcategory (INSTEAD of listing the subcategories).
"TopList" TopList=brands THEN the brands browsing list is displayed.
"BrandsTL" This param is used when the brands browsing becomes a toplevel filter (used in conjunction with TopList). This param is used to set path context. This flag is automtically reset when the top level brands browsing page is loaded.
ResetBrand yes will cause the cached brand value to be reset (see also: Brands Note and brands drilldown)
"Lev2List" THEN this will result in a list of all subcategories within this Category. This param is used to set path context.
"lev2list" SPESUBALL THEN this is a special case reserved word which will cause a list of all subcategories to be displayed in list mode (SPE SUB ALL).
resetLev2 yes will cause the cached LastLev2List value to be reset (this is the last category visited)
Start Warning! IF no search parameters are provided THEN the start-param must only appear at the beginning of the list Search parameters entered after the "start" parameter will be ignored unless they are QL OR SP.
ShowCase

Yes/No - Turns product showcase on & off; Showcase is typically only used with the SKU=xxxx which matches an exact product. i.e. browser.asp?SKU=GR295&showcase=yes&Start=0

 


Product List Display - Buy Button Lines

This display lists products. The list can be the result of drilldown browsing, dropdown lists, search results, or any other form of product browsing that results in a list of products. This list is also displayed at the bottom of the showcase page.

Some frequently used setting:




Page Titles

Every product browsing page has a title. This title is derived from the drilldown level or search result. The formating of this title is controlled by "autoCatTitleStart" and "autoCatTitleEnd" which can be set to any HTML including CSS.

type of browser pagetitle comes fromDisplayed Limited*
Showcase pageThe title comes from the contents of the subcategory column.yes
BrandsAt the top level of the tree the label will be defined by "autoCatTitleBrands"yes
Categories
searchColumn = "toplist"
At the top level the string defined by "autoCatTitleCategory"yes
Categories
searchColumn = "categories"
The current category will be displayed. If categories are mixed then the first category from the query results will be displayed.yes
Subcategory
searchColumn = "Lev2List"
The current category will be displayed. If categories are mixed in the subcategory then the first category from the query results will be displayed.yes
Items lists or matrixThe current subcategory will be displayed. If subcategories are mixed then the first subcategory from the query results will be displayed.yes
Search resultsThe string defined by "autoCatTitleSearch"yes

* The page title will only be displayed if "autoCatTitleStart" is defined to be something other than an empty string AND enableCatPageTopper = TRUE.

Default top of browsing-tree page titles are defined by:
autoCatTitleBrands = "Our Brands"
autoCatTitleCategory = "Product Categories"
autoCatTitleSearch = "Product Search Results"


Field Display

Different fields in the Items table and ItemsExt tables are displayed in different places in the product browser and shopping cart pages. Here is a partial list of where some of the key fields will appear.

DB Column Name Where it appears
Default is FullName This DB column is configurable and can be any column in the DB. (see: fieldBrowserPageItemName).

Appears in the Search Results and Item Browsing pages.

NickName

Appears in the list of items in the cart. This field may be overriden by the subroute:
sub SetItemDisplayField( colName ) which sets a different DB field for display in the basket such as FullName. This function is set in the Store.xxxx.asp core shopping cart pages so each page can in theory display a different DB column.

In some cases the e-commerce system may be configured to display the FullName column in the cart instead of the nickname. The hyperlink displayed in the cart is an automatically generated POP-UP which shows a picture of the product and the longDesc. Note: The Application("BasketPopupLinkPart1") must be defined for the POP-up to page (SendSafe.ProductDetailsPopUp.asp) to be linked.

LongDesc

Appears on the showcase page under the FullName. The description can be pages in length and can include any HTML code including: images, lists, tables, hyperlinks, etc. In this example the long description includes size, color, delivery limitations, and etc.

Logo

The logo appears on the showcase page to the right of the (PictureFileA) image of product. The logo is also displayed on the Brands drilldown browsing page if (browserBrandsLogosEnabled) is enabled.


Breadcrumbs

Breadcrumbs are a very powerful user interface (UI) tool. As a UI element they are immediately recognizable to most visitors and intuitive in use so no instructions are needed.

Breadcrumbs are used as navigational shortcuts. They are clickable paths that show a visitor where they are located and offer shortcuts back to different drilldown levels. SendSafe’s breadcrumbs also include a link which will rerun the last search you performed. The combined result is a simple to use rapid navigation tool.

Breadcrumbs are automatically generated. No programming or configuration is required.


Special Pricing

If special pricing is enabled the system will display three prices for each product: Retail, Standard Price, and Special Price. The system will use either the SpecialPrice or the PriceEa. To enable special pricing set enableSpecialAndRetailPricing = true OR setup SpecialPricing for use as a customer discount.


Special Pricing is either globally or selectively enabled. To enable special pricing for all customers you must set the configuration variable enableSpecialAndRetailPricing true. To selectively enable special pricing as a discount for select customers you must enable Discount Pricing.

Pricing DB Columns:

Rules:

Meta-code:

IF enableAlwaysShowRetail = true
	IF SpecialPrice > 0.0
		IF RetailPrice is NOT null
			display it in blue
		Display PriceEA with strikethrough
		Display SpecialPrice as purchase price with configured formatting (i.e. color and weight).
	ELSE
		IF RetailPrice is NOT null
			display it in red with strikethrough
		Display PriceEA as purchase price
	END

ELSE 
	IF RetailPrice is NOT null and enableAlwaysShowRetail = true
		display it in red with strikethrough
	Display PriceEA as purchase price
END

The retailPrice would typically be set to either the same value as the priceEA DB column or set to the competition's higher price to show greater savings at your site.

To enable special pricing (prices - not display) in the wishlist and reorder pages, you must also set the SendSafe control Application("enableSpecialAndRetailPricing") to the appropriate value.


SendSafe DB Columns that are searched

When the customer initiates a search, the database columns that are searched are listed below. All searches are wildcard searches (i.e. select like ‘%search phrase%’).

The Description is not displayed by the e-store framework (which uses LongDesc instead). However, the description column is searched for matching phrases. The Description column is used for searching instead of the longDesc because SQL DB Servers cannot search the type of free-form data field (nText) which is used used for the longDesc DB column. You are advised to replicate the most relevant portion of the longDesc in the Description column.

You should enter values into the keyword field which a customer would type in to the search box when looking for this type of product.

Tip: If you want the search result to match on SKU# then one of the items you enter into the keywords should be the SKU (i.e. /SKU-NUMBER/ - make sure you use the opening and closing slashes '/'). You can also relate items together in search results by placing the same key words into all the keyword fields for related products.

The important distinction between the keywords column and the description column is that the keyword column will only return a result where there is a 100% match of the entire word or a sub-word. The keyword column will not return a match where the term is a super-frame of a keyword. For example if the items record contains "/1234/abcd/myword/" in its keywords column, then:

Keyword searching can be customized to include context searching of keywords. The key words can be setup with syntax like: /Mapsco=A345/Wallpaper=Green/. The search system is then customized to provide searches by Mapsco or Searches by Wallpaper color. Contact CPrompt for more details on customizing the e-store framework to support context searching.

Search term Match result
1234 will match on keywords
123 will match on keywords
12 will match on keywords
12345 will NOT match on keywords

Search Restrictions: The keywords column can also be used to prevent items from showing up in a search result. If you enter into the keywords column a reserved word which matches (and begins with) the nolist value configured in the e-store framework (searchRestrictions = "NOLIST") then those items will never show up in searches. This is very useful if you have duplicate SKU entries. The default value for nolist is "NOLIST"

See: dateadded if you want to prevent a product from displaying in both the serach results and drilldown browsing.

SQL Example: The search term 1234 will result in the following SQL:

Select * From items, ItemsExt where items.itemcodeid = ItemsExt.itemcodeid and ( 
keywords LIKE '%1234%' or Fullname LIKE '%1234%' or Description LIKE '%1234%' ) 
and dateAdded is not null and keywords not like '/NOLIST/%' order by 
FullName

SendSafe DB Columns that Control Product Browsing

Entries in these columns in the Items table will control how your products appear in the browsing pages and search results. Using these settings control how products are grouped and displayed.

  1. Category DB column will control the category dropdown and / or browsing. Place product group descriptions or names into this list (i.e. juice, candy bars, etc.). All items with matching ENTRIES will be displayed when that entry is selected from the drop down list or browsing page. One entry per record row.

  2. SubCategory DB column will control the Subcategory Dropdown and / or browsing. Just like categories, place Subcategory names into this list.

  3. Brand DB Column will control the Brands dropdown and / or browsing. This column is optional and can also be used for other types of browsing such as make, model, color, etc. Just like categories and subcategories, place brand names into this list.

You can have an unlimited number of categories, subcategories, and brands. The sample database which CPrompt provided to you will contain examples of this. Example: let’s assume you have three different categories of products: PICTURES, BOOK, and RUGS. Every product in the database would be assigned one of these three categories. You could just as easy have 100 different categories and you would assign one of these categories to each product. Failing to assign a category to a product will result in that product not showing up in any browsing result (except search results). What is true for categories is also true for subcategories. Example: let’s assume you have three types of books: hard cover, soft cover, and limited editions. You would assign one of these subcategories for each product that had a category of BOOK.


Browsing Display Control

In addition to displaying products, the browsing and search pages also display product icon images, category labels, brand logo images, and page-topper content.

Product Brands Descriptions (a.k.a. CSC Enhanced Brands Display) is the addition of descriptions to the left of each matrix display brands logo in a layout very similar to the matrix drilldown browsing at the product display level (last level before showcase page). The labeling pulls labels from the CSC table.

Brands labeling mode is enabled by setting the pageconfig.inc.asp control variable "brandDrilldownLabeling = true"

Warning: You must have a label present for every brand or the brand will not show up in the matrix display.

Product Category Descriptions (a.k.a. CSC Enhanced Category Display) is the addition of descriptions to the left of each matrix display icon in a layout very similar to the matrix drilldown browsing at the product display level (last level before showcase page). The labeling pulls labels from the CSC table.

Product category labeling mode is enabled by setting the pageconfig.inc.asp control variable "catDrilldownLabeling = true"

Warning: You must have a label present for every category or the category will not show up in the matrix display.

Categories flagged with an "@" in the category name must use the full category name including the "@" in the category name field of the CSC record.

Product Category icon images are small images that are displayed on the category and subcategory browsing pages before specific product listings are reached (via drilldown).

Product icon category images are controlled by placing specially names images files into the /en/images/ directory of the website. The name of the file must follow a specific file naming convention. The file name rules are designed so that each file name is derived from the category or subcategory name.

The naming convention is:
[Stripped Categoryname].category.jpg or [Stripped Subcategoryname].subcategory.gif
where [Stripped (sub)categoryname] = the full (sub)category name stripped as described below.

All category or subcategory names are stripped of spaces and these punctuation marks (,.'-@?#) are removed. Other punctuation marks may cause file naming conflicts and must be avoided. All instances of ampersands or ampersand entities are replaced with the word 'and' embedded into the name.

Examples:

If a category is named: "Leather Belts" then the image file name must be named:"leatherbelts.category.jpg"

If a subcategory is named: "Wide Leather - Belts" then the image file name must be named: "wideleatherbelts.subcategory.jpg"

If a subcategory is named: "Wide Leather & Plastic Belts" then the image file name must be named: "wideleatherandplasticbelts.subcategory.jpg"

If a category is named: "Leather Belt's" then the image file name must be named:"leatherbelts.category.jpg"

All category and subcategory image files must be of the same image file type (gif,jpeg,png).

To support "one item category flagging" with an "@" in the category name, all "@" characters are stripped before display and filename generation.

Icon images must all be the same size. This size is configured into the system when this function is enabled. The size restriction can be elimiated by leaving it configuration value blank, however if it is eliminated some older browsers may not size some of the images correctly. Icon images must all be the same file type (either GIF or JPG) which is configured in the system globally.

browserMatrixDisplayEnabled = true Enabled Matrix mode which dislays icons for cat and subcat plus displays products (items) with thumbnails.
browserDisplayIconCatsEnabled = false DOES THE SAME AS "browserMatrixDisplayEnabled" for category and subcategory but does not display a thumbnail (icon) for each item; instead a list is displayed.
browserDisplayDefaultSubCatFromBrand = false Display a default image for all items in a subcategory based on the current brand (SearchRefinementByBrandsVal=BMW) instead of the standard default
browserDisplayIconCatsFileType = ".category.gif" The file postfix + extension for the category icon.
browserDisplayIconSubCatsFileType = ".subcategory.gif" The file postfix + extension for the subcategory icon.
browserDisplayIconCatsImgSize = "width=50 height=50" The fixed dimensions of the cat and subcat icon image.
browserDisplayIconCatsFileBaseLoc = "/en/images/" the subdirectory location of the icon images

Default icons are selected if a file matching the naming convention does not exist. The standard naming convention for defaults are:
default.category.jpg where ".category.jpg" = browserDisplayIconCatsFileType
default.subcategory.jpg where ".subcategory.jpg" = browserDisplayIconSubCatsFileType

The non-standard default naming convention for subcats if browserDisplayDefaultSubCatFromBrand = true is:
default.[Stripped brands].subcategory.gif
where [Stripped brands] = the full brands value stripped as described below.

The following function handles category and subcategory names: getIconFileNameFromCat() with enforcement of the file name convention handled by getCleanFileNamingConventionName().

Where brands = the brand that was selected during drilldown.

All brand names are stripped of spaces and these punctuation marks (,.'-@?#) are removed. Other punctuation marks may cause file naming conflicts and must be avoided. All instances of ampersands or ampersand entities are replaced with the word 'and' embedded into the name.

Brand logo images are small logo images that are (optionally) displayed on the brand browsing page before any product listings are reached (drilled down to) and after product lists are reached. This logo is always displayed at the top of the product showcase page.

Brand logo images are enabled by placing images files into the /en/images/ or /images/ directory of the website. The name of the file is entered into the logo column in the DB. Unlike with icon images, logos can be any size. It is recommended that you include the size of the logo image following the image file entry format.

Page topper content is HTML (text and images) which can be optionally displayed at the top of all browsing and search result pages. This context sensitive content is a subcomponent page which is typically a few hundred pixels in height and the full width of the page (though there are no actual limits).

Page toppers are displayed for category, subcategory, brands, and search pages. Each subcategory page does not normally have its own page topper; the applicable category topper page will be displayed on all child subcategory pages. You can configure the the system to display unique subcategory toppers but this will require the creation of a large number of topper files (one for every subcategory OR the default topper file will be displayed).

Page topper content is controlled by placing specially named files into the /en/ or /en/images/ directory of the website.

The naming convention is:
[optional skin][Stripped Categoryname].category.inc.htm
where [Stripped Categoryname] = the full category name stripped as described below: All category names are stripped of spaces and these punctuation marks (,.'-) are removed from the name. Other punctuation marks may cause file naming conflicts and must be avoided. All instances of ampersands or ampersand entities are replaced with the word 'and' embedded into the name.

If skins are enabled, then the topper filename will be prefixed with the name of the skin. In the above example, if skin=foo THEN the file would be foo.categoryname.inc.htm

Specific character stripping and mappings:

Default and top level pages:

Configuration:

See: for more information on subcomponent page editing and operation

Product thumbnail images are small images that are displayed on the product listing and search result pages after product are drilled down to (reached). This function is optional (and enabled or disabled globally for a site). An individual image is displayed for each product.

Product thumbnail images are enabled by placing images files into the /en/images/ or /images/ directory of the website. The name of the file is entered into the PictureFileB column in the DB. Unlike with icon images, thumbnails can be any size though they should all be the same size. If the thumbnail is different than the default size of 50x50 (or whatever is set as the default) then the size of the image must be defined in the DB following the image file entry format (see for more info on thumbnail sizing).

Product thumbnail images in cart are small images that are displayed in the shopping cart. This function is optional (and enabled or disabled globally for a site using Application("DisplayThumbnails" ) = 5; where the number is the max number of images displable in a cart).


Sort Order

Various product displays are default sorted differently. Below is a list of the displays and how they are default sorted. Sorting can be easily modified to fit other requirements. Generally speaking, every product browsing/searching list result is sorted on the field used to perform the search i.e. category dropdown will produce a list of products sorted by category name.

Display Sort Order
Search Functions Sorted by product FullName:
Order by fullname
if productType grouping is enabled: order by productType, fullname
Dropdown List for Brands Brands Dropdown will produce a list of products sorted by brand:
order by Brands, itemSortColumn
if productType grouping is enabled: order by productType, Brands, itemSortColumn
Dropdown List for Category Category Dropdown will produce a list of products sorted by category:
order by category, itemSortColumn
if productType grouping is enabled:
order by productType, category, itemSortColumn
Dropdown List for Subcategory Subcategory Dropdown will produce a list of products sorted by subcategory:
order by subcategory, itemSortColumn
if productType grouping is enabled:
order by productType, subcategory, itemSortColumn
Dropdown List for Items Items Dropdown will produce a list of products sorted by items:
order by itemSortColumn
if productType grouping is enabled:
order by productType, itemSortColumn
Drilldown List Brands A list of brands sorted by brands:
order by brands
Drilldown List Category Level A list of categories sorted by category:
order by category
Drilldown List subcategory Level A list of subcategories sorted by subcategory:
order by subcategory
Drilldown List item Level A list of items sorted by product FullName:
order by itemSortColumn
if productType grouping is enabled:
order by productType, itemSortColumn

itemSortColumn = fullname when in product Matrix mode OR description when in product list mode.

Sort/Filter dropdown: A dropdown is displayed with the product matrix and lists. This dropdown offers various sorting options such as "sort by price" or "most popular." This list is 100% configurable and can contain many different sorting and filtering options.

The following configuration entries control the sort/filter dropdown where filterAndSortLabels is the entries displayed in the dropdown and filterAndSortClauses are the SQL clauses applied:

Product Grouping: This option will cause all products displayed in matrix and lists to be grouped by productType. This is useful if you want your products "categorized" in the lists and tables. This option is mutually exclusive to any sort/filter options and will be overridden by any sort/filter options that may be selected by the user. This function will strip off any special productType resevered keyword prefixes such as (I-CUSOTMIZER) before display. These prefixes will be included as part of grouping, so if you have products with the same productType with and without prefixes you can end up with multiple product groups.

The following configuration entries control grouping:

Hidden Sort Characters: Category and subcategory sorting can be configured to use a hidden set of characters at the beginning of each column for sorting. These hidden characters are included in the alphabetical sort applied the catergory and subcategory columns. This allows the category and subcategory columns to be displayed in an order that appears to be something other than alphabetical. The length of this hidden set of characters is defined by the control variable "catsortPrefixRevLen=0" located in the e-store framework. To disable this option set catsortPrefixRevLen=0 (which is the default). see also: Application("fullNameSortPrefixRevLen" ) which controls prefixes for fullname fields inside the SendSafe.

To setup:

 


Tabbed product Description

The product description entered into the longDesc field can be automatically broken into CSS TAB sections.

The syntax for tabbed longDesc is controlled by two different "reserved word" HTML comment fields. One field defines the set of tabs and the second comment is used to delimit each tabbed section. If tabbing is used, the entire description must be tabbed.

The first tabbed section which appears in the longDesc will be displayed by default when the product showcase page is opened. This tab would typically be the product summary or description with other tabs serving as info, details, shipping, etc.

If both TABBED and non-TABBED descritive content is in the longDesc then it is advised that the two sections be seperated with a <br clear=all> HTML break.

The format of the tabs is controlled by the CSS style shown below. This style must be included in your stylesheet for TABBED descriptions to work.

.formTLDbutton
{
FONT-SIZE: 12px;
padding: 2px 7px;
}

The longDesc syntax is:

<!--[[INDEXTABS=|ABC|EFG|HIJ|]]-->

Defines the set of tabs. In this example three tab are labeled: ABC, EFG, & HIJ. Each label is delimited by either an "!" or "|" character.

Any content appearing before this reserved-word-string will be displayed as normal descritive content. This normal descriptive content will be displayed above the TABS.

<!--[[TABSECTION]]--> Marks the start of a tab section. Each sections must be in the same order as the tab name appeared in <!--INDEXTABS=|ABC|EFG|HIJ|-->. Each TABSECTION must be terminated with either a <!--[[TABSECTION]]--> or the end of the DB record field.
| or ! The listed characters are illegal in TAB LABELS. These characters can only be used as specified in the <!--abc--> reserved keyword comments

Here is a simple example. The list of tabs appears first followed by each section in the same order as the list of tabs.

<!--[[INDEXTABS=!PRODUCT!SPECIFICATIONS!ACCESSORIES!]]-->
<!--[[TABSECTION]]-->
Use "S" hooks to attach valve tags. Sold 100 hooks per package. Available in Stainless Steel or Solid Brass.
<!--[[TABSECTION]]-->
The hooks are 1" x 2" cast brass or milled steel.
<!--[[TABSECTION]]-->
Tool kit and laser level.

In the above example:

Internals:




The Showcase Page

The showcase page is where a single product (or a grouped set of related products) is displayed with pictures, long descriptions (include HTML), and a product list with addToBasket buttons. The example below is very simple. You can add very complex HTML code to this page by placing it into the longDesc databse column. This text can wrap around the product image or even include additional product images.

The logo can be displayed above the PictureFileA image or right align and merged into the longDesc. This is set by "dspShowcaseLogoOnTop." If FFP mode is disabled then any raw HTML placed inside the FFP field will be displayed below add-to-cart entry line on the showcase page. This additional field is useful for footnotes, nutritional information, or other supporting data.

PictureFileA can be displayed with the text wrapping around (as illustrated below) or with PictureFileA occupying the top of the showcase page and the text starting below the picture. This positioning is controlled by nowrapLongDesc. If PictureFileA is set to null then the the showcase page will be rendered in "No-Format" mode.


"No-Format" Showcase Display Mode
All formatting and automated display of elements can be disabled. When disabled, this provides total format control over the contents of the description area of the page. With formatting off, all images, content, item names, etc. must be included in the items.longDesc field. The items.longDesc will be the only content field displayed on the showcase page.

There are two ways to enable No-Format mode:

Either of these setting will set No-Format mode, but with a small difference. Setting the <!--NOFORMAT--> will give total control and does not include any CSC Suggestive selling records in the longDesc area of the showcase page. Setting No-Format mode by setting pictureFileA = null will give you full control over the showcase page BUT will include any CSC Suggestive selling records at the end of the product description.

Grouped Product Display
Typically the showcase page contain a single product. However, if you want it to contain multiple products then you select and group these products using the AttributeList column in the items database (see example below). Showcase pages can all contain an entire set of custom parameters which define products or quotes.

The PictureFileA field controls which descriptions and images are displayed on a show case page which contains AttributeList grouped products. All product descriptions and images for products with have the same PictureFileA will ONLY be displayed once on the page. Therefore if you only want one description and one image to appeart on the page, make sure that all the PictureFileA fields contain the same image file.

If you are using the AttributeList to group products which are bids / quotes or custom products which use FFP then you must make sure that either all products grouped together use the same FFP or that 1st product displayed is a superset of all FFP values.

FFP Showcase
The showcase page also works with custom products, bids, and other types of orders which require entry of a complex set of parameters. These parameters are handled by a susbsystem called Free-Form Parameter (FFP). There are two types of showcase pages which work with FFP products. The standard showcase page which is called a simple layout and and a completely configurable layout called advanced layout. The blank page does not automatically include pictures, logos, and other illustrative components. The blank page is typically used for highly customized products which require custom illustrations and text. All images and text other than the buying line and longDesc are rendered by the FFP subsystem.

Advance Layout FFP


Simple Layout FFP



Brands

The drilldown browsing system includes brands in addition to category and subcategory. Brands browsing can function as either a seperate means of product drilldown browsing OR as super-category of drilldown browsing.

To enable brands to function as a super-category set browserBrandTopLevelDrilldown = true

When not operating as a super-category, brands drilldown will function differently than category and subcategory browsing and is not interchangeable, meaning you should not use brands as a top level "category group" to achieve three levels of category drilldown unless you have the system setup with brands as a super-category.

Internally in the e-store framework code, brands works as a filter while category and subcategory work as groups. The brands filter is in effect until all brands is clicked (i.e. the top level brands window is displayed) or the filter is manually reset (see: Brands Drilldown Note). Category & Subcategory work as groups which never apply a filter which must be removed.

Example of brands filter in effect: if you have a product browsing link on your site which starts at the category level then all subcategories and products will be displayed regardless the brand. If the same path is reached drilling down from the brands level (then a brands filter will be in effect) and fewer subcategories and products will be displayed. The browsing results will be inconsistent and possibly confusing unless filters are reset at appropriate times.

Note:Intensionally or unintentionally leaving the logo and/or brands DB columns empty will result in a snaggletooth matrix display where some rows will not have the same number of logos as other rows. This is caused by post SQL query processing out of the invalid records.


Featured Products

The SendSafe system can be configured to display a select group of product on home page. This is similar to “end caps” or “windows displays” in the brink and mortar store metaphor. These products are displayed in a table with a unique image, text, and an optional add-to-basket button. Clicking on a featured product will load the showcase page.

See also: featured products setup.

Note: the advertisement subsystem is often sometimes used instead of featured products. The advertisement subsystem offers greater flexibility and power than the featured products function but is not as easy to use.




Decommissioning Products

In e-stores you should decommission products and not delete them. Deleting an item record in a running e-store can have negative results (see also: deleting records).

E-commerce system are extremely similar to a standard multiple ledger accounting systems and should be approached with a similar type of understanding. Many of the rules that apply to accounting systems also apply to e-commerce systems. Think ledger entries when you are making manual changes.

If you delete a product then orders which are in progress will no longer be associated with a product. This can lead to customers having orders which can not be processed. It is not uncommon for customers to build an order for days or even weeks, placing a different item in the cart on every visit. In a busy e-store, it not uncommon to have thousands of open orders which are still being assembled by the customer. So deleting a product can effect a lot of open orders.

Also, if you do delete a product this will have a small negative effect on administration of processed orders. Deleting a product will prevent the order’s lineitems from being displayed in admin pages (as it should since the system no longer has full product information). A customer's order history will also be affected (in past purchases, order status, and other pages which use order history).

So if you no longer want to sell a product, you should decommission it and not deleted. When you decommission a product it is flagged so that it no longer displays in the e-store but open orders will still contain it. You can compile a list of these open orders and inform the customers that products they have in their cart are being discontinued or you can fulfill these orders as they come in until inventory is gone then send out a notice.

There are three ways to flag a product as decommissioned:

(1) Most e-stores are configured to NOT display a specific subset of products. This subset is configured in by the “browsingRestrictions” variable in the optional e-store framework. So to decommission a product you would set its producttype, category, subcategory or other field to a value so that it is no longer part of the subset of products which are displayed. the typical choice is to set ProductType to something like "and productType != 'decommissioned'".
(2) You can set the QtyInStock for the item to zero. This will cause the item to be displayed with an out of stock message next to it. Make sure that “showOutOfStock” message variable in the optional e-store framework is set to true. The e-commerce systen can be easily modified to handle the "out of stock" condition differently (including not showing the product at all - contact CPrompt for details).
(3) You can set the dateadded value in the product item record to null. Make sure that the dateAddedActivationControl variable in the optional e-store framework is set true.

Image File DB Entry Format

If all product images are not 200x200 for showcase pages and 50x50 for thumbnails, then those images must include additional information in the PictureFileA (Full Size Image), PictureFileB (ThumbNail), & Logo columns. This information tells the system the size of the image.

Example:
Image file named: mycat.jpg

Example for images all the same size:
PictureFileA = images/mycat.jpg

Example for images with different sizes:
PictureFileA = "!200!300!image/mycat.jpg"

*where 200 = width and 300 = height

If you will have a large number of product images, it is recommended that you collect these images in a single subdirectory off the /en/images/ subdirectory. For example: /en/images/productshots/.


Size of thumbnail images

For product thumbnails ((PicturefileB) it is very important to make all the images the same size. The same holds true for category and subcategory thumbnail icons. The thumbnails are used in the matrix displays of products (the x/y table of thumbnails). **The full size picture (PicturefileA does not have to be consistent in size).

As long as all thumbnails are not sized the same, there is a potential for pages to look uneven (snaggletoothed). The size of a thumbnail is determined when the file is saved. There is nothing that can be realistically done about oddball sizing of the images from the system’s end. If you want pages to have perfectly-evenly-aligned columns then you will need to make all thumbnail the same width. If you do not make the thumbnail the same width then it is geometrically impossible to line up all side of the columns. You can left align a column, right align a column, or center a column and it will still not look balanced if the images are not the same width. The same goes for height, though to a much lesser extent (it has to do with human visual perception) – visually height is not as distracting if all rows are vertically aligned at the top.

Borders or frames can be added around all thumbnails to make the total outer dimensions the same. This can help make all thumbnails look consistent if they cannot be made at least the same width.

CPrompt can customize the system to display a different number of columns depending on the product category or subcategory being displayed. The only problem with doing this is that search results can bridge all categories and subcategories (which defeats the usefulness of this modification).


Duplicate SKU

In some cases you may want partially duplicate records for an item. For example: you may want to list the same SKU in multiple categories and subcategories as a different product with a different product description; creating partial-duplicate records is the way to do this. An example where duplicate SKUs might be useful is for car parts - where the same part is used on many different cars AND a different car make & model is included in each of the duplicate part descriptions.

You should avoid creating records which differ only in category or subcategory. Records which differ in only category or subcategory are called Duplicate Part Entries (DPE).

If you have DPE entries, those items may show up as duplicates in product browsing if either the category or subcategory is the same as another DPE for the same item. You can prevent a duplicate from being displayed in browsing as well as searches by setting the dateadded for the duplicates to null.

If you have DPE entries, those items will show up as duplicate results in searches unless you specifically configure the system to ignore one or more of these DPE records. This configuration is done in the database and the e-store framework using the searchRestrictions value. To prevent duplication you would disable search display for all except one of the DPE records for the same item.

In some cases with non-DPE duplicate SKU records, you may need to setup searchRestrictions to prevent "searches by SKU" from returning duplicate results. This is typically not a problem because the same SKU is being used with a completely different product description.

Duplicate SKUs should only be used if absolutely required. DuplicateSKUs should never be used for the sole purpose of displaying an identical product in different categories or subcategories; there are better ways of performing suggestive selling by using Context Sensitive Content (CSC) and featured products. Placing the same product(s) in multiple categories or subcategories often indicates that the product tree is not optimally defined.

DPE Duplicate item records are confusing for customers because they will find the same exact product under different categories. Online store metaphors mimic brink and mortar stores in several ways. Online stores have: aisles, checkout counters, searches (asking the clerk where something is located), and more. When you have duplicate sku’s showing up under multiple categories, it is the same as going to the supermarket and finding Pepsi on the soda aisle and the snack aisle. While this may seem to be useful marketing, it is more often an undesirable practice which confuses customers: Is this the same Pepsi? Is the price different than the stuff on the other aisle? Is there something wrong with this Pepsi? Is the Pepsi on the other aisle the new stuff?

Displaying the same product in multiple aisles, short circuits our hunter gatherer instincts which come into play during shopping. The result is confusion and a less enjoyable and less productive shopping experience. Stores which display the same products in multiple aisles may experience lower sales volume and lower customer revisit rates.

With duplicate skus, inventory tracking will be affected. With duplicate skus, you effectively have the same product stocked on two different shelves in your store. Purchases from one shelf will decrement inventory for that shelve only. When the inventory on a shelf runs out, the product will be out of stock on that shelf but still in stock on a different shelf. This means that customers may think a product is out of stock when it is not AND you will have to manage two different stocking levels if you are using inventory management. Custom logic can be added to the system to automatically balance stocking levels (contact CPrompt for details).

The showcase page contains deduping logic. This dedup logic will prevent the display of duplicate buy buttons for duplciate SKUs as long as the items also have the same fullname. If you use duplicate skus and for some reason want duplicate buy buttons displayed on the showcase page then you must give the duplicate sku items different fullnames.

DPE Items and CSC Suggestive Selling can result in other kinds of duplicates. If you have a DPE item which is listed as a CSC Suggestive Selling Buy button, you can have duplicate buy buttons IF the fullnames for the multiple PDE entries are not the same.

See also: Importing Duplicate SKUs

 


Product Browser Setup

All the files which make up the e-store framework can be found in the .\includes\ directory. Setup is performed by editing the file: includes\pageconfig.inc.asp

Product Browser settings
Application("SpecialNavExtTable") = "ItemsExt" This is the extended items info table used on the browsing, featured products, and navigation dropdown pages
displayedRowLimit = 24 This is the max number of rows which will be displayed on a browsing pages
displayedRowLimitBrowsingOR = false Setting this value TRUE will cause all items in a browsed subcategory to be displayed on a single page (i.e. paging is disabled)
defaultSearchPhrase = "" This is the default value to search for in the search column i.e. defaultSearchPhrase = "retail"
defaultSearchColumn = "" This is the default column to search i.e. defaultSearchColumn = "category"
suppressResultsTitle = false Suppress the display of search result and browsing titles
browsingRestrictions = "" This is an additional appended SQL clause that is used for additional restritions i.e. "and productType != 'decommissioned'"
searchRestrictions = "NOLIST" This is an optional phrase that "if present" in keywords will prevent the item from showing up in searches. If a value is assigned THEN keywords cannot be NULL or this will also cause a display suppression.
browserListPicsEnabled = false Displays thumbnail pictures in the search results / browsing lists (PictureFileB)
fieldShowcasePageItemName = "FullName" The field displayed for the product's name in the showcase page
fieldBrowserPageItemName = "FullName" The field displayed for the product's name in the lists of buy buttons + quantity + description (see illustration).
catsortPrefixRevLen = 0 The the number of characters reserved for sorting control (default=0); see also: Application("fullNameSortPrefixRevLen" ) which controls prefixes for fullname fields inside the SendSafe.
brandDrilldownLabeling = false Enable descriptions/labels for brand drilldown (CSC) linkage.
catDrilldownLabeling = false Enable descriptions/labels for category drilldown (CSC) linkage
browserBrandTopLevelDrilldown = true When enabled brand browsing becomes the top level category
enableListPurchaseLines = true If enabled, the purchase line are shown for lists of products and showcase pages
broadCategorySearches = false Enable broader category searches by using 'LIKEinstead of '=on category select clauses
refineSubCatDrilldownWithCat = true Refines the subcategory drilldowns searches with the currently IN EFFECT catgrory value
browserCacheEnabled = false Enables caching the top level category and brands page for performance
enableProductSizeDisplay = true Enables the display of product size in list mode only
nowrapLongDesc = false On the showcase page, this setting will causes PictureFileA to take up the top of the display with all other text and images starting below the pic.
showCaseBigPicAlignment = "align=left" This is an optional image alignment string which is applied to the <td> and <IMG> tags; this entry can contain things like align=center or align=left
skinLimitedProductTypes = false This will limit products by skin codes appended to the productType '/skinname/' - see also skinned website
fontSizeOfShowCaseProductName = 4 The size of the font (1,2,3,4,5,6,7) used for the product name in the showcase page.
enableLogoInShowcase = true Enables the display of the logo in the showcase page.
dspShowcaseLogoOnTop = false Forces the logo to display on top of the item pictureFileA instead of right aligned and merged with the description.
browserMatrixDisplayEnabled = true Displays thumbnail pictures in a matrix with links to showcase page
browserMatrixDisplayColumns = 4 Number of columns to create in matrix display.
browserMatrixCatColOverride = 0 Override value ONLY FOR CATEGORIES - overrides browserMatrixDisplayColumns setting when in Matrix mode. Set to zero to disable
browserMatrixItemsDisplayColumns = 2 Number of columns to create in matrix display for items. This value must be evenly divide displayedRowLimit
browserMatrixDisplayImgSize = "width=75 height=75" The fixed dimensions of the image
fieldNameForMatrixDisplay = "nickname"DB column which is displayed below the product thumnails in the matrix display
matrixBuyButtons = true Enable display of buy butto on matrix display
matrixDescriptions = true Display featuredProduct description on matrix display
matrixDescMinWidth = 200 The min width of the description col
defaultForceCatListInsteadOfMatrix = false If true the system defaults to category lists instead of matrix displays unless overridden by URL param CatListMode=YES/NO
defaultForceSubCatListInsteadOfMatrix = false If true the system defaults to subcategory lists instead of matrix displays unless overridden by URL param SubCatListMode=YES/NO
defaultForceBrandListInsteadOfMatrix = false If true the system defaults to brand lists instead of matrix displays unless overridden by URL param BrandListMode=YES/NO
browserBrandsLogosEnabled = false Display logos for each image browserDB( "logo" ) in the brands LIST display (has no effect on matrix display which will override).
appendNameToLogosInMatrix = true Append the Brand Name to the bottom of the logos in the matrix display.
browserSuppressDisplayOfSKU = false Prevent SKU# from displaying.
rightSideBuyButtonLayout = false Use right button layout instead of default left button layout.
dateAddedActivationControl = trueSet true to exclude items with a null dateadded field from product drilldown browsing.
browserDisplayCatLabelsEnabled = true Display a category number bar at the top of the category and subcategory listings
browserDisplayIconCatsEnabled = false Display a logo image for each subcategory list image browserDB( "logo" ) Replaced: browserDisplayLogoForSubCatsEnabled
browserDisplayDefaultSubCatFromBrand = false Display a default image for all items in a subcategory based on the current brand (SearchRefinementByBrandsVal=BMW)
browserDisplayIconCatsFileType = ".category.jpg" The image file postfix used for Category icons
browserDisplayIconSubCatsFileType = ".subcategory.jpg"The image file postfix used for SubCategory icons
browserDisplayIconCatsImgSize = "width=75 height=75" The dimensions of the icon image
browserDisplayIconCatsFileBaseLoc = "/en/images/" the subdirectory location of the images
browserShowCaseDefaultPicSize = "height=250 width=250" Set to default size for browser showcase pages PictureFileA
browserThumbnailDefaultPicSize = "height=75 width=75" Set to default size for browser showcase pages PictureFileB
browserFontAttributes = ""Begin Style/Font attributes used for "item names" displayed in product browsing pages.
browserFontAttributesEnd = ""End Style/Font attributes used for "item names" displayed in product browsing pages.
browserColumns = 3The default number of columns dislayed for lists of brands, categories, and subcategories when not in matrix mode.
doubleSpaceFFPEntryFields = true Stacks FFP Label on top of entry field
attributeGroupingEnabled = false Enables displaying like items in a showcase page
manuallyPlaceRenderingSub = true Enabled the placement of the rendering sub anywhere in the browser page
enableSpecialAndRetailPricing = true

Enabled/Disable the display of Special Pricing

To enable special pricing (prices - not display) in the wishlist and reorder pages, you must also set the SendSafe control Application("enableSpecialAndRetailPricing") to the appropriate value.

Map Link
mqEnableMapLinkInShowCase = false Enable map site links in the show case page
mqURLtoMapSite = "http://maps.google.com/maps?f=q&hl=en&q=" This is the URL to the mapping site where q=6323+stichter+dallas+texas
mqDataField = "FullName" This is the Db field that will supply the q=
mqURLContent = "map link" This is content (text or pic) that is used for the map site link

Featured Products settings
featuredProductsEnable = trueEnable/display display of featured products where ever the feature products include file has been included.
featuredCategoriesEnable = falseDisplay featured categories instead of items in featured products displays.
maxFPRows = 1Max number of rows of featured products that will be displayed
maxFPCols = 3Number of products that will be displayed in each row.
endCapVertLines = falseEnables the display of "end cap" lines around the featured products rows
boxLines = falseEnables the display of box lines around each featured product.
enableFeaturedProductsBuyButton = trueEnables the display of a buy button option for each featured products. If not enabled then a link to a showcase page will be the main access to the product.
enableFeaturedProductsPriceDisplay = trueEnables the display of featured product prices.
fpVSpacing = 5Vertical spacing between rows
fpHSpacing = 5Horizontal spacing between items

Custom Access control
redirectToThisPageIfNotAllowed = ""Optional: redirect to this page (instead of the login page) if access is not allowed.
acceptAnyValidLoginForCAP = false Accept any valid customer login for Customer Access pages.
capControlLogic = trueThis flag is used for backward compatablity AND MUST always be set = true/false if (dim) defined UNLESS SEPERATE ACCESS CONTROL LOGIC IS COMMENTED OUT. This logic should only be used on brochure sites with split browser function calls.
byPassAccessControl = trueIf set false make sure that the file CustomAccessControl.inc.asp is #INCLUDED and enabled in browser.asp If improperly enabled THEN now browsing results will show.

Page Customizer/Personalizer - see pagecustomizer.inc.asp
showLoginName = falseDipsplay the login name for the customer at the top of all pages browsing pages.
loginNameCSSBoxStart =
"Welcome "
Begin CSS used to control the locate where the login name is displayed.
loginNameCSSBoxEnd =
""
End CSS used to control the locate where the login name is displayed.

Filter and Sort by options
Examples: filterOrSortBy = " and productType not like 'XXX%order by category "
filterAndSortEnabled = trueEnable filter/sort dropdown on the product display pages
filterAndSortLabels = "Sort by high price|Sort by low price"Label for the entires in the filer/sort dropdown.
filterAndSortClauses = "order by priceEa desc|order by priceEa" The SQL clause used for dropdown options.
filterAndSortLegend = "" This is an optional label for the sort and filter dropdown
browserproductTypeGrouping = false Enables grouping of browser results - mutually exlusive to sort/filter options; filterSortNeeded must be enabled

Out of Stock Message Control
showSearchTally = falseshow summery of search results at the top of the results page
showOutOfStock = trueshow out of stock messages
showOutOfStockWithBB = falseshow out of stock messages with a buy button (must also set: showOutOfStock = true)

Category special display options

This function will display an "HTML sub-page" above the category search results. This can be used for display of additional information for a given category.

The syntax for the file name is: bread.category.inc.htm where 'bread' is the value in the categoy column

skinableCSS = false This will enable skinning of CSS style sheets; see skinned website
enableCatPageTopper = trueenable the display of page toppers (this includes brands and toplevel plus category & product labels) see: renderDrillDownCatDisplayTitle() and incCategoryFile()
defaultCatPageTopper = "DEFAULT-CATEGORIES.category.inc.htm"Sets the default page topper found in the /en/ directory
enableDiffSubCatPageTopper = falseenables different toppers for subcategory names.
autoCatTitleStart =
"...."
This is the starting HTML format for all browsing pages (i.e. category, subcategory, showcase, etc.)
autoCatTitleEnd =
"..."
This is the ending HTML format for all browsing pages (i.e. category, subcategory, showcase, etc.)
autoCatTitleBrands = "Our Brands"brands title
autoCatTitleCategory = "Product Categories"category title
autoCatTitleSearch = "Product Search Results"search results title
maxRotatorVal = 0used to set image rotation

Special Mini- Shopping Basket Displayed on browsing pages
cartBackgroundColor = "bgcolor=white"Background color of mini-shopping basket
cartFontColor = "black"Font color for mini-shopping basket
cartTransparency = "100"Transparency of the cart 0-100
showLoginNameInCart = trueShow the login name of the customer in the top of the mini-cart, see: loginNameCSSBoxStart
lcForLoginNameInCart = 1Extra Line count for login name displayed in cart. This value is typically 1, but if a larger font is used then this value may need to be set to 2 or even 3.
alwaysDisplayCartContents = falseSet true to display the contents of the shopping cart if avaiable in the browsing pages. Mutually exclusive with displayCartContentsAllPgs.
displayCartContentsAllPgs = falseIf set true the carts contents will be displayed on all pages. Mutually exclusive with alwaysDisplayCartContents. All page display uses code found in frametop.inc.asp.
mincartNotOnShowCase = trueSuppresses display of the mini-cart on the showcase page (works with alwaysDisplayCartContents ONLY).
mincartWidth = 250 width of optional mini-cart display
mincartHeight = 100 height of optonal mini-cat display
ccsBoxForCartInfo = "...." styles/CSS for mini-shopping basket display. If present CSS floating box is used.
ccsBoxForCartInfoCSS = "...."

CSS floating box style to use with ccsBoxForCartInfo.

<style type="text/css" media="screen,print">#MINICARTFLOATER{ position: absolute; z-index: 1000; top: 30px; left: 300px; background-color: #ffffff; white-space: normal;overflow: auto;visibility: visible;} </style>


Browser breadcrumbs and nav shortcuts
browserBreadCrumbsStyle = "font-family: Arial; font-size: 8pt;"style used for display of breadcrumbs
browserBreadCrumbsARecordClass = "breadcrumbs"title
browserBreadSHistory = trueDisplay searh history in bread crumb line
showTopOfResultsPaging = falseshow search results paging at the top of the page.
highlightedPagingEnabled = falsehighlight search results paging
browserBreadCrumbs = trueenable/disable
goBackSearchClicker = falseShow back to prior search button on the showcase page. This option is only relevant if breadcrumbs are not enabled.
cscShowCaseSuggestiveSell = trueshow suggestive selling info in the showcase page

Navigation dropdowns
navDropdownsEnabled = falseEnable dropdown product navigation
emnableBrandsDropDown = falseEnable brands dropdown product navigation
emnableItemsDropDown = falseEnable items product navigation (use only for small number of items in store (less than 50).
emnableSubcatDropDown = trueEnable subcategory dropdown product navigation
emnableQListDropDown = falseenable/disable quick list dropdown
disableCategoryRenderCache = trueMust be displayed for on-the-fly context sensitive dropdowns
disableBrandRenderCache = falsedisable/Enabled the caching of the brands dropdown
cascadingNavSelections = falseEnable to force navselections to cascade

Trim
coreNavColorChip = "images/bannercolorchip.gif"This is the color chip used in the dropdown nav display
themeColorChip = "images/bannercolorchip.gif"Basic background color chip - used through out the site for trim
leftborderColorColorChip = "images/bannercolorchip.gif"Color used for left boarder (if present)

Alternate Category List
i.e. Category search results shows precanned results from a list instead of DB values.
almListEnabled = falseEnable the display of a fixed list of items instead of product categories
almListSQLRangeLimit = falseEnable to allow the system to only display values from almListArray() which are with in the DB range
almSubFieldDelimited = ""This is a field delimiter such as "-" which breaks a category field into subfields
almListArray = split( "produce,software,consulting,quotes","," )A list of values displayed instead of categories.

Buy Button
buyb_width = 83sets the width of the buybutton used on the browser page
buyb_height = 22sets the height of the buybutton used on the browser page
buyb_image = "images/addtocart.gif"sets the buybutton used on the browser page
buyColumnTitle = "Buy"Title of the column in which buy buttons appear
priceColumnTitle = "Price"Column title for the price column in list displays

Quote Button
quoteb_width = 83sets the width of the quotebutton used on the browser page
quoteb_height = 22sets the height of the quotebutton used on the browser page
quoteb_image = "images/reqquote.gif"sets the quotebutton used on the browser page
bidPrintText = "Print"sets the text displayed in the print bid hyperlink
disableAddBidToCart = falseEnable/disable

Customize Button
customizeb_width = 83sets the width of the cutomizebutton used on the browser page
customizeb_height = 22sets the height of the cutomizebutton used on the browser page
customizeb_image = "images/customize.gif"sets the cutomizebutton used on the browser page

 


Browser.asp Parameters

The basic search is done by passing on the URL parameter line THE NAME OF A COLUMN and a VALUE to search for in that column. For example:

This URL will search fir all items which have "Hot dog bun" in the SUBCATERGORY column.

NOTE: Start=0 is required and will make sure that the list begins with the 1st item found.

Queries
"AdvSearch" Generates a multi-row list of all items that match this search phrase (searches Multi columns in the DB) This flag is typically only used by the [ SEARCH ENTRY BOX ] to perform free-form product searches The columns that are searched are: keywords and fullname
"TopList" SUBCATEOGRY LIST (The Standard): TopList=SubCat THEN this will result in a list of all the categories with Hyperlinks to all SUBCATEGORIES user the category. See below for subcat usage.
"TopList" ITEMS LIST: TopList=yes THEN this result in a list of all the categories with Hyperlinks which immediately list all items in a subcategory (INSTEAD of listing the subcategories).
"TopList" TopList=brands THEN the brands browsing list is displayed.
"BrandsTL" This param is used when the brands browsing becomes a toplevel filter (used in conjunction with TopList). This param is used to set path context. This flag is automtically reset when the top level brands browsing page is loaded.
ResetBrand yes will cause the cached brand value to be reset (see also: Brands Note and brands drilldown). Example &ResetBrand=yes&Start=0
"Lev2List" THEN this will result in a list of all subcategories within this Category. This param is used to set path context.
"lev2list" SPESUBALL THEN this is a special case reserved word which will cause a list of all subcategories to be displayed in list mode (SPE SUB ALL).
resetLev2 yes will cause the cached LastLev2List value to be reset (this is the last category visited). Example: &resetLev2=yes&Start=0
"L1" FirstLetter Only of search phrase, must include (default type of) search parameter Example: browser.asp?Category=m&L1=yesy&start=0
QL SearchCoumn (i.e. CATEGORY, BRANDS, SUBCATEGORY, etc.) NOTE: QL & SL must ONLY appear after STARTS=0
SP Phrase to searh for in QL NOTE: QL & SL must ONLY appear after STARTS=0
"BID" OrderLineItem bid - used for viewing and purchasing of bids. This function includes and implied setting og ShowCase = Yes
"iapcode"

The product code of the item just added to the cart. This is used by instant add to display a pop-up acknowledgement.

Response.Redirect( appendURLToken( Request.QueryString( "burl" ) ) & "&iapcode=" & postVal_PRODUCTCODE )

"iwpcode"

The product code of the item just added to the wish list. This is used by instant add to display a pop-up acknowledgement.

Response.Redirect( appendURLToken( Request.QueryString( "burl" ) ) & "&iwpcode=" & postVal_PRODUCTCODE )

Start Warning! IF no search parameters are provided THEN the start-param must only appear at the beginning of the list Search parameters entered after the "start" parameter will be ignored unless they are QL OR SP.
ShowCase

Yes/No - Turns product showcase on & off; Showcase is typically only used with the SKU=xxxx which matches an exact product. i.e. browser.asp?SKU=GR295&showcase=yes&Start=0

NOTE: You can combine ShowCase=Yes with a search that will match more than one product and open a showcase page showing multiple products. For example: "subcategory=bread&ShowCase=Yes"

SEARCHDEBUG YES -- will enable debug dump / NO -- will turn debug dump off

Here is an example of drilldown browsing and direct parts access links. The following settings are in effect for this example:

(1) This link will load all brands
http://www.mybiz.com/browser.asp?TopList=brands
SQL = Select distinct logo, brands From items, ItemsExt where items.itemcodeid = ItemsExt.itemcodeid and dateAdded is not null order by brands

(2) The next drilldown shows categories
brandsTL=Chevrolet =yields=> SearchRefinementByBrandsVal=Chevrolet
http://www.mybiz.com/browser.asp?TopList=subcat&brandsTL=Chevrolet&Start=0
SQL = Select distinct category From items, ItemsExt where items.itemcodeid = ItemsExt.itemcodeid and dateAdded is not null and brands = 'Chevrolet' order by category

(3) The next drilldown shows subcategories
cookie: svnSearchRefinementByBrandsVal=Chevrolet =yields=> SearchRefinementByBrandsVal=Chevrolet a.k.a. brands=Chevrolet
http://www.mybiz.com/browser.asp?Lev2List=2000&Start=0
SQL = Select distinct subcategory, category From items, ItemsExt where items.itemcodeid = ItemsExt.itemcodeid and category like '%2000%' and dateAdded is not null and brands = 'Chevrolet' order by subcategory

(4) The final drilldown level shows parts
cookie: svnSearchRefinementByBrandsVal=Chevrolet =yields=> SearchRefinementByBrandsVal=Chevrolet a.k.a. brands=Chevrolet
Cookie: svnLastLev2List=2000 =yields=> category=2000
http://www.mybiz.com/browser.asp?Subcategory=Corvette&Start=0
SQL = Select InformationLink, Category, SubCategory, Brands, items.itemCodeId, PictureFileB, producttype, PriceEa, QtyInStock, OutOfStockMsg, FullName, sku , FeaturedDesc , description From items, ItemsExt where items.itemcodeid = ItemsExt.itemcodeid and SUBCATEGORY = 'Corvette' and dateAdded is not null and brands = 'Chevrolet' and category like '%2000%' order by SUBCATEGORY, fullName

(5) Showcase
cookie: svnSearchRefinementByBrandsVal=Chevrolet =yields=> SearchRefinementByBrandsVal=Chevrolet a.k.a. brands=Chevrolet
Cookie: svnLastLev2List=2000 =yields=> category=2000
http://www.mybiz.com/browser.asp?ItemCodeId=1827144522&showcase=yes
SQL = Select InformationLink, Category, SubCategory, Brands, items.itemCodeId, PictureFileB, producttype, PriceEa, QtyInStock, OutOfStockMsg, FullName, sku , FFParams, logo, PictureFileA, longDesc , FeaturedDesc , description From items, ItemsExt where items.itemcodeid = ItemsExt.itemcodeid and items.itemCodeId = '1827144522' order by items.itemCodeId, fullName

This direct link: This link will set toplevel brands filtering but will not set category (svnLastLev2List)
SETS cookie: svnSearchRefinementByBrandsVal=Chevrolet
http://www.mybiz.com/browser.asp?ItemCodeId=1827144522&brandsTL=Chevrolet&showcase=yes

This direct link: This link will not set toplevel brands
http://www.mybiz.com/browser.asp?ItemCodeId=1827144522&showcase=yes