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.
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:
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" | |
| "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 | |
| 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:
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 page | title comes from | Displayed Limited* |
| Showcase page | The title comes from the contents of the subcategory column. | yes |
| Brands | At 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 matrix | The current subcategory will be displayed. If subcategories are mixed then the first subcategory from the query results will be displayed. | yes |
| Search results | The 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"
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:
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 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.
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.
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: lets 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: lets 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.
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).
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, fullnameDropdown 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, itemSortColumnDropdown 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, itemSortColumnDropdown 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, itemSortColumnDropdown 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, itemSortColumnDrilldown List Brands A list of brands sorted by brands:
order by brandsDrilldown List Category Level A list of categories sorted by category:
order by categoryDrilldown List subcategory Level A list of subcategories sorted by subcategory:
order by subcategoryDrilldown 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:
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 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:
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
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.
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.
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 orders 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.
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/.
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 systems 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).
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 skus 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
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 = true | Set 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 = 3 | The 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 = true | Enable/display display of featured products where ever the feature products include file has been included. |
| featuredCategoriesEnable = false | Display featured categories instead of items in featured products displays. |
| maxFPRows = 1 | Max number of rows of featured products that will be displayed |
| maxFPCols = 3 | Number of products that will be displayed in each row. |
| endCapVertLines = false | Enables the display of "end cap" lines around the featured products rows |
| boxLines = false | Enables the display of box lines around each featured product. |
| enableFeaturedProductsBuyButton = true | Enables 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 = true | Enables the display of featured product prices. |
| fpVSpacing = 5 | Vertical spacing between rows |
| fpHSpacing = 5 | Horizontal 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 = true | This 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 = true | If 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 = false | Dipsplay 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. |
| Out of Stock Message Control | |
| showSearchTally = false | show summery of search results at the top of the results page |
| showOutOfStock = true | show out of stock messages |
| showOutOfStockWithBB = false | show 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 = true | enable 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 = false | enables 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 = 0 | used 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 = true | Show the login name of the customer in the top of the mini-cart, see: loginNameCSSBoxStart |
| lcForLoginNameInCart = 1 | Extra 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 = false | Set true to display the contents of the shopping cart if avaiable in the browsing pages. Mutually exclusive with displayCartContentsAllPgs. |
| displayCartContentsAllPgs = false | If 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 = true | Suppresses 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 = true | Display searh history in bread crumb line |
| showTopOfResultsPaging = false | show search results paging at the top of the page. |
| highlightedPagingEnabled = false | highlight search results paging |
| browserBreadCrumbs = true | enable/disable |
| goBackSearchClicker = false | Show back to prior search button on the showcase page. This option is only relevant if breadcrumbs are not enabled. |
| cscShowCaseSuggestiveSell = true | show suggestive selling info in the showcase page |
| Navigation dropdowns | |
| navDropdownsEnabled = false | Enable dropdown product navigation |
| emnableBrandsDropDown = false | Enable brands dropdown product navigation |
| emnableItemsDropDown = false | Enable items product navigation (use only for small number of items in store (less than 50). |
| emnableSubcatDropDown = true | Enable subcategory dropdown product navigation |
| emnableQListDropDown = false | enable/disable quick list dropdown |
| disableCategoryRenderCache = true | Must be displayed for on-the-fly context sensitive dropdowns |
| disableBrandRenderCache = false | disable/Enabled the caching of the brands dropdown |
| cascadingNavSelections = false | Enable to force navselections to cascade |
| Alternate Category List i.e. Category search results shows precanned results from a list instead of DB values. | |
| almListEnabled = false | Enable the display of a fixed list of items instead of product categories |
| almListSQLRangeLimit = false | Enable 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 = 83 | sets the width of the buybutton used on the browser page |
| buyb_height = 22 | sets 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 = 83 | sets the width of the quotebutton used on the browser page |
| quoteb_height = 22 | sets 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 = false | Enable/disable |
| Customize Button | |
| customizeb_width = 83 | sets the width of the cutomizebutton used on the browser page |
| customizeb_height = 22 | sets the height of the cutomizebutton used on the browser page |
| customizeb_image = "images/customize.gif" | sets the cutomizebutton used on the browser page |
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" | |
| "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 | |
| 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 |