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
        claco@chrislaco.com
        http://today.icantfocus.com/blog/