Previous | Next Main Index:   Frames | No Frames
Document:   Frames | No Frames
 

WebStore Query Strings

 
Query string data are groups of name=value pairs following the ? in URLs referencing the WebStore script. name=value pairs are separated by an & (ampersand):
    ws400.cgi?category=DbaseCategory&page=CategoryPage.html&cart_id=
 
General Rules
 
name= Definitions
 
cart_id=
category=
page=
pcat=
store=
buy_item= | view_item=
buy_item_now=
item_id= | item_pr=
form=
client_form=Y
no_search=Y
frames=frameset | frames=main or frames=ws_main | frames=Y
 
Diagnostic:   env= | env=dbase
 
Query Strings
 
?store=NEW.setup&cart_id=
?category=1&cart_id=
?category=DbaseCategory&cart_id=
?category=CategoryPage.html&cart_id=
?category=Dbase+Category+Name&cart_id=
?category=DbaseCategory&page=CategoryPage.html&cart_id=
?category=ItemPage.html&pcat=DbaseCategory&cart_id=
?category=ItemPage.html&page=CategoryPage.html&pcat=DbaseCategory&cart_id=
 
?buy_item=ItemNumber&cart_id=
?view_item=ItemNumber&cart_id=
?buy_item_now=ItemNumber&cart_id=
 
Query Strings in Setup File Subroutines
 
<A HREF = "$main_script_url?store=NEW.setup\&cart_id=$cart_id">
 
Invalid/Questionable Query Strings
 
?category=Dbase  Category  Name&cart_id=
?category=CategoryPage.html&pcat=DbaseCategory&cart_id=
 
 
 
Top of Page
 
 
General Rules
 
 
One WebStore query string per line in HTML documents.
 
Never include .htm or .html in a database category name. .htm and .html file extensions are reserved for calling HTML files.
 
The use of inner document links in database-resident query strings prevents the printing of quantity text input and price on an expanded item information page. WebStore must assume multiple items are present on pages accessed in this manner:
?category=ItemPage.html&pcat=DbaseCategory&cart_id=#item_12
 
 
 
Index
 
 
name= Definitions
 
cart_id=
WebStore outputs the store's front page, category front pages, and expanded item information pages line by line and substitutes occurrences of cart_id= found in these files with:
    cart_id=xxxxx&store=outlet.setup

    xxxxx        = the shopping cart assigned to the client
    outlet.setup = the store's setup file
Except for the Price field, substitution is performed on database fields displayed in Category tables.
 
$default_setup_file, located at the top of the WebStore script, supplies the value for store= if a name=value pair for store= is not present in the query string.
 
After a client enters the WebStore and their shopping cart has been issued, cart_id= must be included in the query string of URLs on the store's front page, category front pages, expanded item information pages, and database fields displayed in category tables or the shopping cart hidden form element will be lost (your client will loose their shopping cart).
 
 
Index
 
category=
Use category to direct clients to:

 
All HTML documents referenced using WebStore query strings must be stored in the /Html sub-directory and may have the extension .htm or .html.
 
Database category names consist of a word or short phrase describing the products placed in the category.
 
Use of the following special characters in database category names requires the use of their hexadecimal equivalent in WebStore query strings present on HTML pages and in WebStore query strings present in the store's database:
 
Special Character
used in category names
     Extended Character
use in form elements
     Hexadecimal Equivalent
use in query strings
 (space)      N/A      %20  or  +  (plus sign)
"  (double quote)      &quot;      %22
&  (ampersand)      &amp;      %26
+  (plus sign)      N/A      %2B
;  (semi-colon)      N/A      %3B
<  (less than)      &lt;      %3C
>  (greater than)      &gt;      %3E
 
Example Category Names:
Perl Books
<HREF ANCHOR> <A HREF="ws400.cgi?category=Perl+Books&cart_id=">Perl Books</A> or <A HREF="ws400.cgi?category=Perl%20Books&cart_id=">Perl Books</A> <JavaScript FORM> <OPTION VALUE="ws400.cgi?category=Perl+Books&cart_id=">Perl Books or <OPTION VALUE="ws400.cgi?category=Perl%20Books&cart_id=">Perl Books </FORM> <WebStore Generated FORM> <OPTION VALUE="Perl Books">Perl Books </FORM>
12" Rulers
<HREF ANCHOR> <A HREF="ws400.cgi?category=12%22+Rulers&cart_id=">12&quot; Rulers</A> or <A HREF="ws400.cgi?category=12%22%20Rulers&cart_id=">12&quot; Rulers</A> <JavaScript FORM> <OPTION VALUE="ws400.cgi?category=12%22+Rulers&cart_id=">12&quot; Rulers or <OPTION VALUE="ws400.cgi?category=12%22%20Rulers&cart_id=">12&quot; Rulers </FORM> <WebStore Generated FORM> <OPTION VALUE="12&quot; Rulers">12&quot; Rulers </FORM>
Shirts & Shoes
<HREF ANCHOR> <A HREF="ws400.cgi?category=Shirts+%26+Shoes&cart_id=">Shirts &amp; Shoes</A> or <A HREF="ws400.cgi?category=Shirts%20%26%20Shoes&cart_id=">Shirts &amp; Shoes</A> <JavaScript FORM> <OPTION VALUE="ws400.cgi?category=Shirts+%26+Shoes&cart_id=">Shirts &amp; Shoes or <OPTION VALUE="ws400.cgi?category=Shirts%20%26%20Shoes&cart_id=">Shirts &amp; Shoes </FORM> <WebStore Generated FORM> <OPTION VALUE="Shirts &amp; Shoes">Shirts &amp; Shoes </FORM>
 
Index
 
page=
The value you assign to page defines (or redefines) the category front page to be loaded after viewing a database category.
 
When you use page, set category equal to the database category to be viewed. If you fail to define category, WebStore will clear page and prints the store's front page to the client's web browser.
 
Category front page loading occurs when the client clicks the Previous Page form submit button at the bottom of the category table.
 
Returning to the store's front page by clicking the Front Page form submit button clears page.
 
WebStore sets page equal to category when category points to a category front page. Your use of page overrides this normal operation, allowing you to redirect clients to any category front page in your application.
 
 
Index
 
pcat=
The value you assign to pcat equals the name of the database category being viewed when the client clicks the URL to view an expanded item information page.
 
When you use pcat, set category equal to the filename of the expanded item information page. If you fail to define category, WebStore will clear pcat and prints the store's front page to the client's web browser.
 
Database category return occurs when the client clicks the Previous Page form submit button at the bottom of the expanded item information page.
 
Returning to the store's front page by clicking the Front Page form submit button clears pcat.
 
 
Index
 
store=
WebStore assigns the value to store by means of substitution during the line by line output of the store's front page, category front pages, and expanded item information pages. Substitution occurs when the cart_id= tag is detected.
 
$default_setup_file, located at the top of the WebStore script, supplies the value for store.
 
You must supply the value of store for query strings in Setup File Subroutines.
 
 
Index
 
buy_item=
Adds a quantity of one to the shopper's cart for the item whose inventory control number is defined using buy_item.
 
An item's inventory control number resides in the Item field in the store's product database, outlet.data.
 
The Item field must be defined in $item_fld_num in the store's setup file, outlet.setup. WebStore disregards buy_item when $item_fld_num = ''.
 
buy_item may be used with the following name=value pair combinations:
&category=AnyPage.html
&page=AnyPage.html
&pcat=DbaseCategory
&category=AnyPage.html&pcat=DbaseCategory
&page=AnyPage.html&pcat=DbaseCategory
&page=AnyPage.html&pcat=CategoryPage.html
When used with buy_item, category must reference an HTML document in WebStore's /Html sub-directoy or a sub-directory under /Html. WebStore will disregard category when it's value points to a product database category (DbaseCategory).
 
Online Demo:   ?buy_item=0103&category=InfoTek&cart_id=
WebStore disregards category when it's value does not reference an HTML document.
 
Online Demo:   ?buy_item=0103&category=Peripherals.html&cart_id=
WebStore provides a Previous Page button when category references an HTML document.
 
 
Index
 
view_item=
WebStore displays the item whose inventory control number is defined using view_item.
 
An item's inventory control number resides in the Item field in the store's product database, outlet.data.
 
The Item field must be defined in $item_fld_num in the store's setup file, outlet.setup. WebStore disregards view_item when $item_fld_num = ''.
 
view_item may be used with the following name=value pair combinations:
&category=AnyPage.html
&page=AnyPage.html
&pcat=DbaseCategory
&category=AnyPage.html&pcat=DbaseCategory
&page=AnyPage.html&pcat=DbaseCategory
&page=AnyPage.html&pcat=CategoryPage.html
When used with view_item, category must reference an HTML document in WebStore's /Html sub-directoy or a sub-directory under /Html. WebStore will disregard category when it's value points to a product database category (DbaseCategory).
 
Online Demo:   ?view_item=0103&category=InfoTek&cart_id=
WebStore disregards category when it's value does not reference an HTML document.
 
Online Demo:   ?view_item=0103&category=Peripherals.html&cart_id=
WebStore provides a Previous Page button when category references an HTML document.
 
 
Index
 
buy_item_now=
Adds a quantity of one to the shopper's cart for the item whose inventory control number is defined using buy_item_now. After adding the item to the shopper's cart, WebStore branches directly to order form processing.
 
An item's inventory control number resides in the Item field in the store's product database, outlet.data.
 
The Item field must be defined in $item_fld_num in the store's setup file, outlet.setup. WebStore disregards buy_item_now when $item_fld_num = ''.
 
Online Demo:   ?buy_item_now=0103&cart_id=
 
 
Index
 
item_id=
item_pr=
WebStore assigns the values to item_id and item_pr by means of substitution whenever the cart_id= tag is detected in the query string of URLs present in an item's database field displayed in Category tables.
 
item_id is the item's database id number.
item_pr is the item's price.
 
WebStore uses these values to print an item's price and quantity text input box at the bottom of expanded item information pages.
 
Query string substitution does not occur in fields displayed in View/Modify tables.
 
 
Index
 
form=
Use form to call a secondary form setup file.
 
WebStore will print the form defined in %Form of the secondary form setup file to the client's web browser.
 
Adding a name=value pair to the query string for category= or page= will direct the client to a specific database category or HTML page after successful forms submission.
 
If a name=value pair for category= or page= does not exist in the query string, the client is directed to the store's front page after successful forms submission.
 
WebStore's primary order form setup file can not be called using form=. WebStore will direct the client to the store's front page if the form setup file called using form= does not have a forms array named %Form.
 
 
Index
 
client_form=Y
Use client_form to call the form setup file defined in $client_file or $password_file in outlet.setup to create or modify a client form file from within the WebStore environment.
 
client_form is disregarded by WebStore when a form setup file is not defined in $client_file and $password_file.
 
WebStore will print the form defined in %ClientForm of the secondary form setup file to the client's web browser.
 
Adding a name=value pair to the query string for category= or page= will direct the client to a specific database category or HTML page after successful forms submission.
 
If a name=value pair for category= or page= does not exist in the query string, the client is directed to the store's front page after successful forms submission.
 
WebStore's access form setup file can not be called using form=. WebStore will direct the client to the store's front page if the form setup file called using client_form=Y does not have a forms array named %ClientForm.
 
Online Demo:   ?client_form=Y
For unrestricted access, WebStore prints the form defined in %ClientAccess when client_form=Y is used in the first href anchor referencing WebStore.
 
 
Index
 
no_search=Y
When no_search=Y exists in a WebStore query string on an HTML page, do not print the search form to the HTML page defined in category= of the query string.
 
no_search=Y will be substituted into WebStore query strings found on the called HTML page. Any anchor clicked on the called HTML page will pass no_search=Y to the page defined in category= of the clicked anchor, prohibiting the printing of WebStore's search form on this HTML page as well.
 
When the client returns to the store's front page, no_search=Y is substituted into WebStore query strings found on the HTML document.
 
If no_search=Y is used in the query string to enter a frames WebStore, no_search=Y is substituted into <frame src> query strings containing cart_id=, passing no_search=Y to the document defined in category= of <frame src> query strings.
 
When no_search= (with no value) exists in a WebStore query string on an HTML page, no_search=Y will not be substituted into the query string.
 
$search_engine in outlet.setup must be set to 1 or 2 to enable the use of no_search=Y. no_search=Y has no effect when $search_engine = ''. When enabled, the search engine form is always printed to the store's front page.
 
Online Demo:   ?no_search=Y&category=Peripherals.html
Search engine form will not be printed to Peripherals.html. WebStore adds no_search=Y to all query strings present in all frame documents, except those query strings which include no_search=.
 
 
Index
 
frames=frameset
 
Informs WebStore the document being printed is a frame document containing <frameset> tags.
 
Prohibits WebStore from printing it's <FORM ACTION>, form buttons, subtotal message, search engine form, or clickable links to these pages.
 
All WebStore form actions must be submitted from the main frame.
 
Online Demo:   ?frames=frameset&category=Frameset_banner.html
WebStore will load the frames document Frameset_banner.html.
 
Online Demo:   No Query String
The frames document defined in $frameset_file in outlet.setup is Frameset.html. WebStore will load this frames document without including it's filename in the query string for the first access to WebStore.
 
 
Index
 
frames=main or frames=ws_main
 
Directs WebStore to print it's <FORM ACTION>, form buttons, subtotal message, search engine form, and clickable links to the page being directed to the main or ws_main frame from a frame document containing <frameset> tags.
 
frames=main or frames=ws_main must be used to print the store's front page from a frame document containing <frameset> tags.
 
The <FRAME NAME> of the frame housing the WebStore application must be main or ws_main.
 
 
Index
 
frames=Y
 
Prohibits WebStore from printing it's <FORM ACTION>, form buttons, minimum order message, subtotal message, search engine form, or clickable links to the page being printed in any frame.
 
frames=Y is used for printing frames indexing pages, WebStore's graphic buttons page, and the banner image page.
 
Online Demo:   ?frames=Y&category=Peripherals.html
Search engine form, minimum order message, $return_link_url, and $email_link_url will not be printed to Peripherals.html.
 
 
Index
 
env=
 
Including env= in the first URL accessing the WebStore environment will return extended error messages for WebStore generated hard error messages.
 
WebStore substitutes env= into all query strings present on HTML documents. WS Banner and WS Mail will pass env= back to to WebStore.
 
Extended error messages are suppressed when no directory errors exist. Adding env= to the query string will override extended error message suppression. This will also return environment variables present in %ENV for the current script process:
http://www.YourDomain.xxx/Web_store/ws400.cgi?env=
Elements of %ENV beginning or ending with USER are always omitted.
 
Server system files used by WebStore are printed below %ENV:
Perl Version  =  5.00503
perl          =  /usr/bin/perl
nslookup      =  /usr/bin/nslookup
sendmail      =  /usr/bin/sendmail
Online Demo:   ?store=None&env=
Since None.setup does not exist, and you included &env= in the query string, WebStore will print a color-coded File not Found message.

To print extended error messages in WebStore when no errors exist, you must create an error condition. Including a non-existent store setup file in the query string accessing WebStore is one method of creating an error condition in order to view a WebStore extended error message.
 
 
Index
 
env=dbase
 
Including env=dbase in the first URL accessing the WebStore environment will perform duplicate database id checking for database searches or for any database query string using category=DbaseCategory or category=DbaseItemNumber.
 
Duplicated database id references will generate a Duplicated Database Id Number error message.
 
When no errors exist in the database, WebStore will function normally, displaying no error message.
 
 
Index
 
 
Query Strings
 
?store=NEW.setup&cart_id=
Since category is not defined in this query string, the store front page defined in the setup file NEW.setup will be printed to the client's web browser.
 
Used to switch between store setup files and may be placed on any HTML page within your WebStore application.
 
If you use page or pcat, category must be defined or WebStore will clear page and pcat and prints the store's front page to the client's web browser.
 
Online Demo:   ?store=No_Frames&cart_id=
 
 
Index
 
?category=1&cart_id=
WebStore searches outlet.data for the record whose id number equals 1 and prints the single item to the client's web browser.
 
Use on the store's front page and category front pages.
 
If the items in your database change frequently, you should avoid using large numbers of these query strings. When sorting the database with WS Editor, use Group Add or Group Remove as these sort functions preserve existing item id numbers in the database.
 
If the database id number does not exist in the database, WebStore will generate a Record number does not exist error message.
 
Online Demo:   ?category=1&cart_id=
Record number 1 exists in outlet.data.
 
Online Demo:   ?category=2000&cart_id=
Record number 2000 does not exist in outlet.data.
 
 
Index
 
?category=DbaseCategory&cart_id=
WebStore searches outlet.data for the database category named DbaseCategory and prints the category to the client's web browser.
 
Use on store's front page and category front pages.
 
If DbaseCategory does not exist as a category in the database, WebStore will generate a No records available error message.
 
Online Demo:   ?category=Modems&cart_id=
Modems category exists in outlet.data.
 
Online Demo:   ?category=Modemss&cart_id=
Modemss category does not exist in outlet.data.
 
 
Index
 
?category=CategoryPage.html&cart_id=
WebStore prints the category front page CategoryPage.htm(l) to the client's web browser.
 
Use on store's front page and category front pages.
 
If CategoryPage.htm(l) does not exist in the /Html sub-directory, WebStore will generate an HTML file not found message.
 
Online Demo:   ?category=Peripherals.html&cart_id=
Peripherals.html category exists in the Html sub-directory.
 
Online Demo:   ?category=Peripheralss.html&cart_id=
Peripheralss.html does not exist in the Html sub-directory.
 
 
Index
 
?category=Dbase+Category+Name&cart_id=
If a category name in the store's database contains more than one word, the words may be separated by a single space.
 
Replace each space in the category name with a + (plus) character in the query string of the URL.
 
If you include spaces in the query string, the query string will be truncated at the first space following the ? (question mark).
 
Online Demo:   ?category=Perl+Books&cart_id=
 
 
Index
 
?category=DbaseCategory&page=CategoryPage.html&cart_id=
WebStore prints the database category DbaseCategory to the client's web browser and stores CategoryPage.html in the page hidden form element.
 
Use on store's front page and category front pages.
 
Clicking the Previous Page form submit button below the category table returns the client to CategoryPage.htm(l).
 
You can redirect your clients to category front page listings of similar products they appear to be interested in by altering the value of page.
 
Online Demo:   ?category=Modems&page=Peripherals.html&cart_id=
 
 
Index
 
?category=ItemPage.html&pcat=DbaseCategory&cart_id=
WebStore prints ItemPage.htm(l) to the client's web browser and stores the current database category being viewed, DbaseCategory, in the pcat hidden form element.
 
URLs containing this query string are stored in an item's database field displayed in Category tables and are used to link clients to expanded item information pages. WebStore will add item_id and item_pr to the query string.
 
Clicking the Previous Page form submit button at the bottom of ItemPage.htm(l) returns the client to the DbaseCategory category table.
 
By adding values for item_id and item_pr before &cart_id=, this query string may be used on your store's front page and category front pages to link directly to expanded item information pages:
 
?category=ItemPage.html&pcat=DbaseCategory&item_id=20&item_pr=79.00&cart_id=
 
Online Demo:   ?category=CD-rom.htm&pcat=Multimedia&cart_id=
Online Demo:   ?category=CD-rom.htm&pcat=Multimedia&item_id=20&item_pr=79.00&cart_id=
 
 
Index
 
?category=ItemPage.html&page=CategoryPage.html&pcat=DbaseCategory&cart_id=
WebStore prints ItemPage.htm(l) to the client's web browser, stores CategoryPage.html in the page hidden form element, and stores DbaseCategory in the pcat hidden form element.
 
URLs containing this query string are stored in an item's database field displayed in Category tables and are used to link clients to expanded item information pages. WebStore will add item_id and item_pr to the query string.
 
Clicking Previous Page at the bottom of ItemPage.htm(l) returns the client to the DbaseCategory category table.
 
Clicking Previous Page at the bottom of the DbaseCategory category table returns the client to CategoryPage.htm(l).
 
Clicking Previous Page at the bottom of CategoryPage.html (or .htm) returns the client to your store's front page.
 
By adding values for item_id and item_pr before &cart_id=, this query string may be used on your store's front page and category front pages to link directly to expanded item information pages:
 
?category=ItemPage.html&page=CategoryPage.html&pcat=DbaseCategory&item_id=6&item_pr=53.95&cart_id=
 
Online Demo:   ?category=CD-rom.htm&page=Peripherals.html&pcat=Multimedia&cart_id=
Online Demo:   ?category=CD-rom.htm&page=Peripherals.html&pcat=Multimedia&item_id=20&item_pr=79.00&cart_id=
 
 
Index
 
?buy_item=ItemNumber&cart_id=
Adds a quantity of one to the shopper's cart for the item whose inventory control number is defined using buy_item. Review buy_item=.
 
An item's inventory control number resides in the Item field in the store's product database, outlet.data.
 
 
Index
 
?view_item=ItemNumber&cart_id=
Displays the item whose inventory control number is defined using view_item. Review view_item=.
 
An item's inventory control number resides in the Item field in the store's product database, outlet.data.
 
 
Index
 
?buy_item_now=ItemNumber&cart_id=
Adds a quantity of one to the shopper's cart for the item whose inventory control number is defined using buy_item_now. After adding the item to the shopper's cart, WebStore branches directly to order form processing. Review buy_item_now=.
 
An item's inventory control number resides in the Item field in the store's product database, outlet.data.
 
 
Index
 
 
Query Strings in Setup File Subroutines
 
<A HREF="$main_script_url?store=NEW.setup\&cart_id=$cart_id">NEW DATABASE</A>
Since category is not defined in this URL, the store front page defined in the setup file NEW.setup will be printed to the client's web browser.
 
<A HREF> tags containing WebStore query strings may be added to outlet.setup in sub frontpage_trailer_html, sub pre_category_html, and sub pre_view_modify_html, allowing you to switch between store setup files or item databases if your application requires it. These are Perl subroutines which will interpolate WebStore's absolute URL into the variable $main_script_url and the client's cart id into the variable $cart_id.
 
The URL must be placed within a Perl print command which begins with print qq! and terminates with !; (exclamation point, semi-colon).
 
print qq! <A HREF>NEW DATABASE</A> !;
 
category, page, and pcat may be added to the query string to direct clients to specific category front pages or database categories in the NEW DATABASE. Each name/value pair added to the query string must be preceded by a backslashed ampersand.   Example:  \&category=DbaseCategory
 
If you use page or pcat, category must be defined or WebStore will clear page and pcat and prints the store's front page to the client's web browser.
 
 
Index
 
 
Invalid/Questionable Query Strings
 
?category=Dbase  Category  Name&cart_id=
Spaces are not allowed in the query string.
 
In this example, the query string will be truncated at the first space following the ? (question mark), leaving ?category=Dbase for WebStore to examine.
 
Since cart_id= was truncated, your client has lost their current shopping cart.
 
Since Dbase probably does not exist as a category in the database, outlet.data, WebStore will generate a No records available error message.
 
Online Demo:   ?category=Dbase  Category  Name&cart_id=
 
 
Index
 
?category=CategoryPage.html&pcat=DbaseCategory&cart_id=
While this query string is certainly valid, and WebStore will perform redirection without question, the possible sequence of HTML pages displayed to the client is questionable.
 
Linking to CategoryPage.htm(l) and storing a database category in pcat may confuse your clients when Previous Page is clicked from CategoryPage.htm(l) and the DbaseCategory category table is loaded.
 
If this query string was in a URL on your store's front page, clicking Previous Category at the bottom of CategoryPage.htm(l) should return the client to your store's front page, not the DbaseCategory category table.
 
A more proper query string would be:
     ?category=DbaseCategory&page=CategoryPage.html&cart_id=
This query string will load the DbaseCategory category table.
 
Clicking Previous Page at the bottom of the DbaseCategory category table returns the client to CategoryPage.htm(l).
 
Clicking Previous Page at the bottom of CategoryPage.htm(l) returns the client to your store's front page.
 
 
 
Top of Page