NAME
   Handel - Simple commerce framework with AxKit/TT/Catalyst support

DESCRIPTION
   Handel is a quick and not-so-dirty ecommerce framework with AxKit taglib
   support and TT2 (Template Toolkit) support. It was started for the
   conversion of an IIS/ASP based commerce site to Apache/ModPerl, but I
   decided that is might be useful to others so here it is on CPAN.

   For the curious, Handel is German for commerce.

WEBSITE
   You can get the latest news, source, documentation and wiki help at
   http://handelframework.com/.

MAILING LIST
   Join the mailing list at
   http://lists.rawmode.org/cgi-bin/mailman/listinfo/handel. Big thanks to
   gabb@#catalyst for the list space.

GOALS
   Database agnostic. Thanks to Class::DBI and staying away from auto
   incrementing ids, Handel should run in any database that Class::DBI
   supports.
   Implementation agnostic. Handel should be able to be used from the
   command line, from a web page, from a SOAP service, or from a GUI
   application. It's simply a data access mechanism. Any interaction with
   forms, web pages, browser, cookies, etc is the responsibility of the
   consumer
   Checkout agnostic. A checkout process means different things to
   different people in different situations. The Handel checkout pipeline
   by itself does absolutely nothing with an order. It is instead a plugin
   manager that allows you to specify and build plugins to do various
   actions (payment authorization, address validation, fax delivery, etc).
   Each site, server, page, even process() call can have it's own unique
   order processing pipeline.
   Easy integration into AxKit using taglibs.
   Easy integration into TT2 using plugins.
   Easy integration into Catalyst using plugins.
   Easy integration into other systems using SOAP.
   Feature complete demo site in AxKit.
   Feature complete demo site in TT2.
   Feature complete demo site in Catalyst.
   Public Subversion repository.
   Public Wiki/Docs site.
   Get someone to actually use the damn thing. :-)
   Abstract schema into SQL::Translator scripts

WHAT HANDEL IS
   Simple cart and order record maintenance.
   Plugin based checkout pipeline processing framework.

WHAT HANDEL ISN'T
   Intershop, Cart32, WebGUI, CMS, complete web commerce package(1). Handel
   is a simple framework to load/upload cart/order data and shove that data
   through a plugin based pipeline.
   (1) While it is not a complete web based commerce system, I do plan on
   having feature complete working demos sites so people can still
   quick-start their own projects.

FEATURES
   Add/Update/Delete/Save/Restore Cart Contents
   Full AxKit XSP Taglib Support
   Template Toolkit 2 Plugin Support
   Currency Conversion
   Currency Formatting
   Basic Localization Support
   Multiple Database Support

REQUIREMENTS
 Prerequisites
   The following modules are required for Handel to work properly. Older
   versions may work fine, but these are the versions I have installed and
   verified to work correctly. If you have older versions and all tests
   pass, send me an email and I'll lower the version requirements.

   Class::DBI
       "Class::DBI" version 0.96 or greater.

   DBI "DBI" version 1.36 or greater.

   Error
       "Error" version 0.14 or greater.

   Locale::Maketext
       "Locale::Maketext" version 1.06 or greater.

   Data::UUID
       At least one of the following modules are required to create uuids:
       "UUID" 0.02, "Win32::Guidgen" 0.04, "Win32API::GUID" 0.02, or
       "Data::UUID" 0.10.

 Optional Modules
   The following modules are not required for Handel to run, although some
   features may be unavailable without them.

   AxKit
       "AxKit" version 1.61 or greater.

       "AxKit" is only required if you plan on using "Handel" within XSP
       using the supplied taglibs.

   Locale::Currency::Format
       "Locale::Currency::Format" version 1.22 or greater.

       When present, this module allows all prices to be formatted to
       specific currency codes and formats.

   Finance::Currency::Convert::WebserviceX
       "Finance::Currency::Convert::WebserviceX" version 0.03 or greater.

       When present, this module allows all prices to be converted from one
       currency to another.

   Locale::Currency
       "Locale::Currency" version 2.07 or greater.

       When present, this module allows all conversion and currency codes
       to be verified as real 3 letter ISO currency codes.

   Template
       "Template" version 2.07 or greater.

       "Template" (TT2/Template ToolKit) is only required if you plan on
       using Handel within TT2 based websites.

 Build/Test Modules
   The following modules are only required for the test suite when running
   "make test".

   Test::More
       "Test::More" version 0.48 or greater.

       The "Test::More" included with perl 5.8.4 and "Test::More" <= 0.48
       have issues with ithreads that usually cause crashes in tests that
       use "Class::DBI" or "DBIx:ContextualFetch". The errors usual mention
       "attempt to free unreferenced scalar". If you receive these during
       "make test", try upgrading "Test::More".

   Pod::Coverage
       "Pod::Coverage" version 0.14 or greater.

       The pod coverage tests may fail complaining about missing pod for
       methods if Pod::Coverage < 0.14 is installed. This is due to certain
       syntax variations of the pod with escaped gt/lt. I may just alter
       the pod and bump this version down if there is enough feedback to do
       so.

   Test::Pod
       "Test::Pod" version 1.00 or greater.

       "Test::Pod" 1.00 added the "all_pod_files_ok()" method which makes
       my life easier. :-)

   Test::Pod::Coverage
       "Test::Pod::Coverage" version 1.04 or greater.

       "Test::Pod::Coverage" 1.04 was made taint safe, and we run the tests
       with -wT like good girls and boys.

   Test:Strict
       "Test::Strict" version 0.01 or greater.

       This keeps me honest and makes sure I always "use strict".

CAVEATS
   When using item_class to specify the item class returned from add/items
   in your subclass under Class::DBI < 3.0.8, the item_class specified will
   be returned from all cart classes, including Handel::Cart itself. In
   most cases, people are only using one subclass of Handel::Cart so this
   won't effect them.

   If you plan on using multiple subclasses of Handel::Cart that may or may
   not return custom items, upgrade your Class::DBI to version 3.0.8 or
   greater.

SEE ALSO
   Handel::Cart

AUTHOR
       Christopher H. Laco
       CPAN ID: CLACO
       [email protected]
       http://today.icantfocus.com/blog/