products can be created. When purchased, a code is emailed
out & shown on screen. A user then shops normally, and
on the basket page enters this code. The certificate amount
is then deducted from the total order amount.
tangible products require shipping info to be entered. If
the product or all products being ordered are marked as non
tangible, then shipping information is not required to be
are products that can be added to a shopping basket. At times,
it is useful to add a discontinued product in the product
listing, to let people know that it was discontinued, etc.
If a product is marked not real, then it will show in the
product listing as all the other products do, but the add
to basket button will be missing.
The source files have been fully
optimized to make as few database connections as possible.
Users can be fully tracked as they
move through the store. A listing shows each action a user
makes, for example, a line might read "User is browsing the
Specials category", or "User is adding the Managers Special
product to their basket"
A variable can be set to specify
how many products should appear across each row, on the product
The code that displays the thumbnail
page product images & related product images looks for
an actual thumbnail image file in a mirror of the product
image directory. If no real thumbnail exists, it will display
the full sized product image, with smaller dimensions. Thumbnails
can be set to be automatically created by the server, and
placed in the thumbnail directory, when product images are
uploaded through the product administration interface.
The original coding only allows filling
in of the width based on the given height, and not the other
If the selling price is lower than
the retail price, the retail price is shown in red with a
strike through, with the sale price below it. If the retail
price is lower than the sale price, or nonexistent, then
only the selling price is shown on both the thumbnail & show
The basket page has been heavily
reworked. The subtotal, shipping, grand total, etc., rows
are all in the same table as the products. Shipping information
has been removed from the basket page, and put on its own
page. There is a variable which toggles whether a user will
be prompted to enter their shipping info as soon as they
press the add to basket button, ie before they even see the
basket page, or whether they go directly to their basket
but must click on a "click here to update your shipping info
link", before being able to checkout.
The store can be set to allow only
American, only Canadian, only Canadian and American, or world
wide customers. Original coding only allows US & Canada,
or world wide. If it is US only, only the United States country
is shown in the country select box. As well, the province
and postal code text disappears.
The original Merchant code only
shows the two letter US state & Canadian province codes,
on the shipping information section of the basket page. Ours
has been reworked to show the full US state or Canadian province
After an order is approved, an
email can be sent to each unique supplier involved with the
order, requesting they ship the products to the client.
Hundreds of products may be imported
into the database, by uploading a tab delimited spreadsheet
file into an administration interface.
A script on the server periodically
counts how many products each category contains, including
those in its sub categories. This information is stored in
the category table, and can be displayed beside each category
in the category listings.
Sometimes you might like to disable
an extra field from being displayed to the user, either temporarily,
or permanently such that you can store information for your
own purposes only. This feature allows disabling the display
of each extra field on the show product page.
A drop down select box allows changing
of shipping services on the basket table. If Canada Post is
being used as the only shipping service, the calculated prices
of the services available to the given location will be shown
beside the service, in the drop down box.