Table of Contents

NAME
Version

DESCRIPTION

OVERVIEW OF MINIVEND
The Vend Concept
A typical user session
How MiniVend Manages Sessions
Page Delivery

DISTRIBUTION AND SUPPORT INFORMATION
Where to Download MiniVend
Perl

QUICK START
The Catalog Directory
makecat -- set up a catalog from a template
Setting up multiple catalogs
If something goes wrong

SETTING UP YOUR CATALOG
Start with a database
Features to use
Use the demo catalogs
Tree design
The Essentials
The Demo Catalog
A bit about "simple"
MML -- MiniVend Markup Language
HTML Hypertext links
Images
Cookies
Basic MiniVend Tags
Inserting hyperlinks
How to order an item
Accessing form values
Where do I go from here?

DATABASES
A bit about text source files
MiniVend Database Operation
The Product Database
Multiple Database Tables
MiniVend built-in database support
Character usage restrictions
Database Attributes
Dictionary indexing with INDEX
MEMORY for memory-only databases
IMPORT_ONCE
Importing in a page
Exporting from a database
Write Control
Global Databases

SQL SUPPORT
SQL support via DBI
SQL Access Methods
Importing from an ASCII file

MINIVEND TAG REFERENCE
Tag syntax
DATA and FIELD
SET, SETI and SCRATCH
LOOP
IF
TAG -- the catch all
COMMENT
User-defined Tags
PRICE, DESCRIPTION, ACCESSORIES
FILE and INCLUDE
Banner/Ad rotation
Tags for summarizing shopping basket/cart
Item Lists
Embedded Perl Code
ASP-like Perl

MiniVend Perl Objects
On-the-fly Catalog Pages
Special Pages
Checking Page HTML

FORMS AND MINIVEND
Special Form Fields
Form Actions
One-click Multiple Variables
Checks and Selections
Integrated Image Maps
Setting Form Security
Stacking Variables on the Form
Extended Value Access and File Upload
Updating MiniVend database tables with a form

THE SEARCH ENGINE
The Search Form
Glimpse
Fast Binary Search
Coordinated and joined searching
Specifying a text-based search with SQL-like syntax
Range Searching
One-click searches
Setting display options with mv_value
In-page searches
Search Profiles
Search Reference
The Results Page
Updating session variables after a search
Using a Search Cache

THE ORDER PROCESS
How to set up an order link
How to set up an order button
How to set up an on-the-fly item
Order Groups
Basket display
Multiple Shopping Carts
Advanced Multi-level Order Pages
Simple Order Report File
Fully-configurable Order Reports
Order Receipts
The Order Counter
Customer Input Fields

PRODUCT PRICING
Simple pricing
Price Maintenance with CommonAdjust
CommonAdjust Examples
PriceBreaks, discounts, and PriceAdjustment
Item Attributes
Product Discounts
Sales Tax
Using CyberCash
CyberCash 3.2

SORTING

SHIPPING
Shipping Cost Database
Criteria determination
Shipping Calculation modes
How shipping is calculated
More on UPS-style lookup
Geographic qualification
Handling charges
Default Shipping Mode

USER DATABASE
The [userdb ...] tag
Setting defaults with the UserDB directive
User Database functions
Address Book
Accounts Book
Preferences
Carts
Controlling page access with UserDB

TRACKING AND BACKEND ORDER ENTRY
ASCII Backup Order Tracking
Database Tracking
Custom Order Routing

MINIVEND SECURITY
SSL support
Administrative Pages
Controlling access to certain pages

INTERNATIONALIZATION
Setting the locale
MiniVend Locale Settings
Special Locale keys for price representation
Dynamic locale directive changes
Sorting based on Locale
Placing Locale information in a Database

MINIVEND CONFIGURATION FILES

MINIVEND.CFG
ActionMap
AddDirective
AdminSub
AllowGlobal
Catalog
CheckHTML
DisplayErrors
DomainTail
DumpStructure
Environment
ErrorFile
FormAction
FullUrl
GlobalSub
HammerLock
HouseKeeping
IpHead
IpQuad
Legacy
Locale
LockoutCommand
Mall
MaxServers
NoAbsolute
PIDcheck
PIDfile
SafeUntrap
SendMailProgram
SocketFile
SocketPerms
SubCatalog
SysLog
TcpHost
TcpMap
TemplateDir
UserTag
Variable
VarName

CATALOG.CFG
Programming watch points in catalog.cfg

Configuration Directives in catalog.cfg
ActionMap
AlwaysSecure
AsciiTrack
AutoModifier
Autoload
CommonAdjust
ConfigDir
CookieDomain
CookieLogin
Cookies
CreditCardAuto
CustomShipping
CyberCash
Database
DefaultShipping
DescriptionField
DisplayErrors
DynamicData
EncryptProgram
ErrorFile
ExtraSecure
FormAction
FormIgnore
FractionalItems
Glimpse
HTMLsuffix
ImageAlias
ImageDir
ImageDirInternal
ImageDirSecure
Locale
LocaleDatabase
MailOrderTo
NoCache
NoImport
NonTaxableField
OfflineDir
OnFly
OrderCounter
OrderLineLimit
OrderProfile
OrderReport
PageDir
PageSelectField
ParseVariables
Password
PGP
Pragma
PriceCommas
PriceDivide
PriceField
ProductDir
ProductFiles
ReadPermission and WritePermission
RemoteUser
Replace
Require
RobotLimit
Route
SalesTax
SalesTaxFunction
SaveExpire
ScratchDefault
ScratchDir
SearchProfile
SecureURL
SendMailProgram
SeparateItems
SessionDatabase
SessionDB
SessionExpire
SessionLockFile
SessionType
SpecialPage
SpecialPageDir
Static
StaticAll
StaticDepth
StaticDir
StaticFly
StaticPage
StaticPath
StaticPattern
StaticSuffix
Sub
TaxShipping
UpsZoneFile
UseModifier
ValuesDefault
Variable
VariableDatabase
VendURL
WideOpen

ADMINISTERING MINIVEND
Starting, Stopping, and Re-starting the Servers
UNIX and INET modes
User reconfiguration
Making the Product Database
Updating Individual Records
Expiring Sessions

DEBUGGING

MANUAL INSTALLATION OF CATALOGS
Needed Directories

Setup for HTTP Servers
UNIX-domain sockets
INET-domain sockets
Internal HTTP server
Setting up VLINK and TLINK
Compiling VLINK and TLINK
Manually compiling VLINK and TLINK

AUTHOR

ACKNOWLEDGEMENTS