NAME
Handel - Simple commerce framework with AxKit/TT2 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.
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.
- 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 specifiy and build plugins to do various actions (payment autorization, address validation, fax delivery, etc). Each site, server, page, even process() call can have it's own uniquie order processing pipeline.
- Easy integration into AxKit using taglibs.
- Easy integration into TT2 using plugins.
- Easy intrgration 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
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 hese are the versions I have installed and verified to work correctly. IF you have older versious 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, orData::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 usingHandel
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 andTest::More
<= 0.48 have issues with ithreads that usually cause crashes in tests that useClass::DBI
orDBIx:ContextualFetch
. The errors usual mention "attempt to free unreferenced scalar". If you reveive these duringmake test
, try upgradingTest::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 theall_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
.
SEE ALSO
AUTHOR
Christopher H. Laco
CPAN ID: CLACO
claco@chrislaco.com
http://today.icantfocus.com/blog/