Skip to content
Interchange ecommerce framework
Branch: master
Clone or download
jonjensen Stop URLs from including session IDs, making cookies always required
Scratch mv_no_session doesn't actually do anything, so remove it.
Latest commit 0da9e49 Feb 5, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
extensions Raise minimum Perl version to 5.14.1 Sep 18, 2018
scripts Update copyright year in key places Jan 9, 2019
share/interchange-5 provide CSS style for mv_contrast class Nov 23, 2009
t Add IPv6 support to TrustProxy and RobotIP; normalize remote_addr Dec 6, 2018
.gitignore rename .ic-version to _ic_version for style consistency Nov 2, 2017
LICENSE Update LICENSE with fresh copy from the FSF at… Mar 30, 2007
MANIFEST.SKIP Escape regex literal . Nov 1, 2017
Makefile.PL Update copyright year in key places Jan 9, 2019
README.debian moved CSS and image files for UI from /var/www/interchange-5 to Oct 29, 2009
README.rhel * Remove unneeded version numbers. Mar 23, 2014
WHATSNEW Update WHATSNEW structure Oct 27, 2017
configure Update copyright year in key places Jan 9, 2019
cpanfile Bundle::LWP is not a thing anymore; replace with: Aug 22, 2016 Raise minimum Perl version to 5.14.1 Sep 18, 2018


Interchange is a web application server, electronic catalog and database display system. Features include:

  • online ordering
  • real-time credit card processing hooks
  • high-level database access and retrieval with SQL support
  • product categorizing, merchandising, and discounting
  • basic customer relationship management
  • dynamic content presentation
  • content management
  • internationalization and localization support
  • real-time tax and shipping hooks
  • reporting
  • web-based administration


Licensed under GPLv2. This program is offered without warranty of any kind. See file LICENSE for redistribution terms.

Copyright (C) 2002-2019 Interchange Development Group
Copyright (C) 1996-2002 Red Hat, Inc.
Originally based on Vend 0.2 and 0.3, copyright 1995-96 by Andrew M. Wilcox.


More information is in the following files:


Notes on using Interchange when installed from RPM packages.


Notes on using Interchange when installed from Debian packages.


How to access the Git repository to track ongoing development.


Changes per specified version family.


Instructions on how to upgrade from an earlier Interchange version.

A documentation package is available, with documentation in many different formats. This and other information is available at the Interchange home on the web:

Repository layout

Major files and directories in the distribution:


Script to create a Makefile, used for installation. (Run ./configure for usage instructions)


The distribution files, exclusive of executable files and modules. Includes:

  • interchange.cfg.dist - Distribution-default interchange.cfg
  • strap/ - Demo catalog skeleton, used by makecat
  • src/ - C and Perl code for CGI link programs
  • lib/ - Back-end administrative interface
  • code/ - Usertags and other customizable code

OS-specific configuration settings.


Various helper scripts and addons.


The library modules needed to run Interchange.


The executable files, relocated to bin/ in the install directory.

Script that adjusts paths in scripts/ for installation into bin/.

The installation test script.


Interchange requires Perl 5.14.1 or later, on a Unix-like operating system. It is primarily used on various Linux distributions, and has also been used on FreeBSD, OpenBSD, macOS, and other Unix variants.

Interchange requires some extra Perl modules to be installed on your system. Unless you are installing from distribution-specific packages (Red Hat, Debian, etc.) the quick way to install the necessary support is to run from the untarred Interchange directory:

cpanm --installdeps .

Alternatively, you can run:

perl -MCPAN -e 'install Bundle::Interchange'

If you would like to use a specific installation of Perl, invoke Perl with an absolute path to the perl binary, such as

/usr/local/bin/perl -MCPAN -e 'install Bundle::Interchange'


You can install Interchange as root for a multi-user system-wide setup, or as an unprivileged user who will be the only one modifying Interchange files.

Here is the quick installation summary:

tar xvzf interchange-5.12.0.tar.gz
cd interchange-5.12.0
perl Makefile.PL
make test
make install

If you would like to use a specific version of Perl, simply invoke with an absolute path to the perl binary, such as:

/usr/local/bin/perl Makefile.PL

The build procedure asks where you'd like to install Interchange and the name of the user account that will own the installation.

The Interchange server doesn't do much if it isn't servicing one or more actual catalogs, so you next need to make your first Interchange catalog, as described in the next section.

Demo catalog

There is a demo catalog skeleton (called 'strap') included.

To build your own catalog from the demo, go to the directory where you installed Interchange (default is "interchange" in your home directory, /usr/local/interchange for root installations, or /usr/lib/interchange for RPM installations) and run:


Follow the prompts and after restarting the Interchange server you should be able to access the new instance of the demo catalog.

Please note that some functionality (notably the reporting features) may not be available if you are not using an SQL database such as MySQL or PostgreSQL.

Visit to try out a live demo.

You can’t perform that action at this time.