Navigation Menu

Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

interchange/minivend

Repository files navigation

# MiniVend V2.0
# 
# Copyright 1996 by Michael J. Heins <mikeh@iac.net>
#
# Largely based on Vend 0.2
# Copyright 1995 by Andrew M. Wilcox <awilcox@world.std.com>
#
# Portions from Vend 0.3
# Copyright 1995,1996 by Andrew M. Wilcox <awilcox@world.std.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Welcome to MiniVend, based on Vend, Andrew Wilcox's fine shopping cart
program.  This program is completely unsupported, without warranty of
any kind -- but that doesn't mean the author is not interested in
problems, suggestions, or comments.  Please feel free to send them to
Mike Heins, <mikeh@iac.net>.

-------------------------------------------------------------

                      I N S T A L L A T I O N

We implore you to read all of the verbiage below.  We know how most of
us are, so we put the install procedure up here, but if you have
problems please read all of this file, PLUS the MiniVend documentation
in doc/minivend.html.  Also, please check out the official MiniVend home
page at http://www.iac.net/~mike/mvend.html before you call for help.

Here is the short version:

    gzip -d mvend200.tar.gz
    tar xf mvend200.tar
    cd mvend200
    ./configure
    su
    bin/makecat sample
    bin/makecat simple
    bin/start

With comments:

    # Unzip and untar the file -- if you have GNU tar, you can combine
    # the first two steps with 'tar xzf mvend200.tar.gz'
    gzip -d mvend200.tar.gz
    tar xf mvend200.tar

    # Change directory to the one that was created -- this is a change
    # from MiniVend 1.0x.
    #
    cd mvend200

    # If you have trouble with picking up the wrong Perl version,
    # try  '/dir/where/perl/is/perl configure.pl /dir/where/perl/is/perl'.
	#
    # If you aren't already the user ID of the user who will run the
    # minivend server, you might want to 'su' to that user before
    # running this step.
	# This step will set the MiniVend directory and Perl location,
	# and build the small dispatch program.
	#
	# If in doubt, the defaults are probably OK.
    #
    ./configure

    # Become superuser if you are an ISP or other organization that
    # will be running multiple catalogs
    #
    su

    # Make the demo catalogs -- either one or both. On the first
    # one, you will be prompted for some initial parameters, then
	# asked to re-run.  This is OK.
    #
    bin/makecat sample

    # Make the other catalog. The extension .cat will be
    # put on the catalog configuration file that is created.
	#
	# If you want to make it with a different name, just use:
	#
	#      bin/makecat yourname
    #
    bin/makecat simple

    # un-su if you became superuser
    #
    exit

    # Start the MiniVend server
    #
    bin/start

That should be it.  If you have problems, please do what is asked above,
and pretty please reference the web site. And

    -- WHEN IN DOUBT, RE-START THE SERVER.  It won't take but a few
       seconds, and changes in configurable options don't take effect
       until it is done. You may even change a page and not see the
       effect until the server is restarted.

-------------------------------------------------------------

                    K N O W N   P R O B L E M S


IRIX:      This software will not work at all, unless there
           is a fix to file locking with GDBM or DB_File. A
		   forked and dissassociated process cannot guarantee
		   that a lock will work.

		   Help on this from the user base would be appreciated.

DEC OSF:   (aka Digital UNIX) You cannot fork searches, the
           ForkSearches directive in minivend.cfg must be 
		   set to 'No'. This has to do with preserving locks
		   across forks and may someday be fixed.  Otherwise
		   it should work properly.

FreeBSD:   The makecat script fails on some Perls and some
           BSDs.  Unknown, but it looks like improper file
		   test indications.

Solaris:   You must use the File::Lock module -- flock()
           emulation still does not work properly, and fcntl()
		   locking must be used.

Linux:     No known problems other than some bogus GDBM libraries
           floating around the net (especially for Linux 2.0).
		   If you have problems, obtain and re-build GDBM and
		   Perl.



-------------------------------------------------------------

                        M I N I V E N D
                                       
   MiniVend is a full-featured electronic catalog system (commonly known
   as a shopping cart) with online ordering capability. It is designed to
   provide an interface complete with SSL security and full database
   support.
   
   MiniVend is freely-redistributable under the GNU General Public
   License -- you can download it via FTP.

   IMPORTANT NOTE:  MiniVend requires Perl 5.002 or higher and GDBM
   or DB_File databases. The program is no longer compatible with 
   NDBM or Perl 5.001.
   
    Features

    MiniVend is a full-featured electronic catalog system (commonly
    known as a shopping cart) with fast and easy online ordering. It
    is designed to provide an interface complete with SSL security
    and full database support. It is as powerful as commercial
    systems costing thousands of dollars.

    MiniVend 2.0 Features

       * Users maintain a "shopping cart" for ordered items
       * Multiple independent or shared catalogs allow one server
         to run many storefronts or a "mall"
       * SSL support means secure and practical credit card ordering
       * PGP support for secure off-site mailing of orders
       * Catalogs can be of almost unlimited size with excellent
         performance
       * Multi-server mode for very high capacity on systems with
         sufficient memory
       * Forked searches for consistent response time in single-server
         mode
       * Cookie support allows browsers to leave catalog and come
         back without losing session state
       * Complete addressable database support with virtually
         unlimited rows and columns

    Powerful search capability

       * Fast binary search
       * One-click scan and search -- build a whole search in a single HREF
       * Complete Glimpse interface
       * Range searching, numeric and alphanumeric
       * Independent field search selection and return
       * Search any file, build results from any database

    Complete control of appearance

       * Full frames support
       * Catalog pages automatically selected -- either built
         "on the fly" from the database or pre-made for popular items
       * Embedded Perl and conditional HTML allow complex and
         flexible catalog pages to be completely built from
         the database

    Flexible Ordering Process

        * Multi-level order screens with configurable field
          verification
        * Shipping calculation, mixed modes, with UPS table lookup
        * Sales tax calculation, with fully independent non-taxable
          item and taxed shipping
        * Fully-configurable discounts with coupons or
          across-the-board discounts
        * Fully-configurable quantity pricing
        * Back end order entry capability
        * Full client-side imagemap support, including frame targets and form
          submits
        * Fully configurable order reports

    Easy Administration

        * Automated installation and configuration
        * Runs under Perl 5 and almost any UNIX
        * Designed to be secure, runs with taint checking enabled
        * Built-in online help capability
        * Works well with all browsers

    Andrew Wilcox wrote Vend, the copylefted shopping cart software.
    MiniVend is based on Vend V0.2, but enhanced considerably,
    adding support for frames, powerful searching, remote
    administration, superfast server mode, conditional HTML,
    user-customizable help and displays, and much more. This version
    of MiniVend includes an automatic configuration and installation
    utility, and continues to be free under the GNU copyleft.

    To learn more about MiniVend, see the HTML documentation, visit
    the offical MiniVend site, or download it.

-------------------------------------------------------------------

                         D E M O

There are two demos supplied. The 'sample' demo demonstrates frames on
MiniVend, along with most of the advanced features. The 'simple' 
demo does not use frames, but now demonstrates a subset of the 
features of MiniVend.

To install the demos, go to the MiniVend installation directory
and run:

    bin/makecat simple
    bin/makecat sample

Follow the prompts and after restarting the MiniVend server you
should be able to access the new catalogs.

-------------------------------------------------------------------

                      A V A I L A B I L I T Y
                              A N D
                     C O M P A T I B I L I T Y

MiniVend has been well-tested on Solaris 2, SunOS, Linux, OSF/Alpha, ,
and FreeBSD. The underlying Vend engine has certainly been tested on
several more OS versions -- and it should work on any UNIX with Perl 5
and GDBM, DB_File, or NDBM support.

GDBM works best -- it is the fastest for import, and most reliable.

IRIX 5 has problems with MiniVend -- it apparently has bugs
in the UNIX-domain socket code that were not yet resolved as of
this writing.

For Solaris 2, you will need the File::Lock module, available at the
same CPAN archive where you obtained this program.

If you are using GCC on Solaris, you may have to pass -lsocket on
the compile command line.

Please let the author know if you have successfully run MiniVend on
any additional platforms -- patches would be appreciated.

-------------------------------------------------------------------

                     S E T T I N G   U P
                   Y O U R   C A T A L O G

Setting up a MiniVend catalog can be quite complex, and that is 
why the documentation and demos were provided.  They should be
sufficient to get you started. Many hours have been spent
in documenting the features of MiniVend, and thoughtful users should
almost always find their answers there.

Key things that people sometimes don't understand:

    -- The actual pages of the catalog are NOT in HTML document
       space.  They are in the catalog directory of the catalog
       that is in question.

    -- The highly interpolative nature of MiniVend and HTML tags
       means that order is often important.

    -- The first thing to do in setting up a custom MiniVend catalog
       is to define the database.  Everything with MiniVend stems
       from the products database -- many of the custom features
       depend on the shipping, salestax, accessories, pricing,
       and other databases.  Determine your data set first.

    -- The demo pages are there to be played with.  With MiniVend
       2.0, you shouldn't be able to stop the system simply by
       changing a page.

    -- Many of the configurable features of MiniVend are determined
       by the directives in catalog.cfg (or minivend.cfg in a standalone
       catalog).

    -- WHEN IN DOUBT, RE-START THE SERVER.  It won't take but a few
       seconds, and many of the configurable options don't take effect
       until it is done.

The author is very interested in learning your problems with MiniVend,
and is interested in clarifying the documentation for future
improvements.  (He isn't much interested in BEING your documentation,
though, unless you pay well and promptly.) Please send comments,
questions, and complaints to:

   mikeh@iac.net