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.
- 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
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, 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 receive 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
.
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
AUTHOR
Christopher H. Laco
CPAN ID: CLACO
claco@chrislaco.com
http://today.icantfocus.com/blog/